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

そのようにプロキシマジックを使用することはできません...マップ宣言の時点で、それがベースのプロキシになることを知らないため、エラーがスローされます

なぜそれを通常の方法でやらないのですか?

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