我在从 java 类调用重写方法时遇到问题。 我有以下 Java 类:
public class Base
{
int state = 0;
public void called()
{
System.out.println("Hello, from called method: " + state);
}
public String getFirst()
{
return "From Base;
}
//
...
//
}
我使用 groovy 脚本来覆盖 getFirst()
,以便它调用 used()
def base = [ getFirst : {
called() // this line has an error
"From Second"
}] as Base
base.getFirst()
我如何实现这个?
最佳答案
你不能以这种方式使用代理魔法...在 Maps 声明时,它不知道它将成为 Base 的代理,因此它会抛出错误
为什么不按正常方式进行呢?
def base = new Base() {
public String getFirst() {
called()
"from me"
}
}
关于groovy - 从重写的 Java 类调用方法。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11098811/