デフォルトのコンストラクターを持たないクラスのデリゲート クラスを Groovy で作成するにはどうすればよいですか? JUnit の ResultPrinter を装飾したいのですが、コンストラクターが見つからないというエラーが発生します。
質問する
374 次
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 に答える