如何在 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 回答