我在从java类调用overriden方法时遇到问题。 我有以下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()
,以便它调用called()
def base = [ getFirst : {
called() // this line has an error
"From Second"
}] as Base
base.getFirst()
我该如何实现?
答案 0 :(得分:2)
你不能以这种方式使用代理魔术......在地图声明时,它不知道它将成为Base的代理,所以它会抛出错误
为什么不按正常方式去做?
def base = new Base() {
public String getFirst() {
called()
"from me"
}
}