metaClass.'static'在替换方法时不起作用 [英] metaClass.'static' not working when replacing method
本文介绍了metaClass.'static'在替换方法时不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下代码:
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屋!
查看全文