metaClass.'static'在替换方法时不起作用 [英] metaClass.'static' not working when replacing method

查看:112
本文介绍了metaClass.'static'在替换方法时不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用groovy 1.7.8。

我有以下代码:

  public class StaticClass {
public static String getStaticString(String string){
returnNOT WORKING
}
}

我的测试:

  void testStaticMethod(){
StaticClass.metaClass.'static'.getStaticString = {i - >
WORKING
}

assertWORKING== StaticClass.getStaticString('test')
}

我无法通过测试。关于我在做什么的任何想法都是错误的?

解决方案

尝试输入关闭内容:

  StaticClass.metaClass.'static'.getStaticString = {String i  - > 
WORKING
}

您需要完全匹配方法签名if你试图重写一些东西。


I'm using groovy 1.7.8.

I have the following code:

public class StaticClass {
    public static String getStaticString(String string) {
        return "NOT WORKING"
    }
}

My test:

void testStaticMethod() {
    StaticClass.metaClass.'static'.getStaticString = { i ->
        "WORKING"
    }

    assert "WORKING" == StaticClass.getStaticString('test')
}

I can not get my test to pass. Any ideas on what I'm doing wrong?

解决方案

Try typing the closure:

StaticClass.metaClass.'static'.getStaticString = { String i ->
    "WORKING"
}

You need to match the method signature exactly if you're trying to override something.

这篇关于metaClass.'static'在替换方法时不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆