0

デフォルトのコンストラクターを持たないクラスのデリゲート クラスを Groovy で作成するにはどうすればよいですか? JUnit の ResultPrinter を装飾したいのですが、コンストラクターが見つからないというエラーが発生します。

4

1 に答える 1

1

私はあなたの問題を理解していません。Java でこれを試しましたShort— これもデフォルトのコンストラクターを持っていません。

委任されたオブジェクトを初期化しなかった場合を除いて、すべてが期待どおりに機能し、NPE が発生します。

間違って使用し@Delegateている可能性はありますか? デリゲートは既存のクラスを装飾しません。既存のクラス メソッドを独自のクラスで使用できるようにします。に似extendていますが、クラスの継承はありません。

コード例:

class Foo {
    @Delegate Short num
    String bar
    String toString() { "$bar: $num" }
}

def f = new Foo(bar: 'bob', num: 34 as Short)
println f // OK
println f.doubleValue() // OK

f = new Foo()
println f.doubleValue() // NPE

(または、実際のエラーやスタック トレース、サンプル コードなどの有用な情報を提供すると、より有用な応答が得られます。)

于 2012-06-28T08:13:38.357 に答える