2

我从 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()它,以便它调用called()

def base = [ getFirst : {
    called()                    // this line has an error
    "From Second"
    }] as Base

base.getFirst()

我该如何实现这个?

4

1 回答 1

2

你不能那样使用代理魔法......在 Maps 声明的时候,它不知道它将成为 Base 的代理,所以它会抛出错误

为什么不按正常方式做呢?

 def base = new Base() {
   public String getFirst() {
     called()
     "from me"
   }
 }
于 2012-06-19T10:19:43.617 回答