我发现自己真的很酷:
class Foo {
String name
}
def foo = new Foo(name:"Test")
但是,它仅在我的文件名与类名匹配时才有效。如果我有一个包含大量类的文件:
class AllClassesInOneFile {
class Bar {}
class Foo {
String name
}
}
def foo = new Foo(name:"Test")
现在,它不再起作用我得到一个java.lang.IllegalArgumentException:错误的参数数量
我想知道是否仍然可以使用脚本和嵌套类来调用命名参数参数样式。
此致
答案 0 :(得分:6)
似乎Groovy需要显式引用外部类的实例:
class Baz {
class Bar {}
class Foo {
String name
}
}
def baz = new Baz()
def f = new Baz.Foo(baz, [name: "john doe"])
assert f.name == "john doe"
答案 1 :(得分:0)
没有外部类的实例就不能存在非静态嵌套对象。 在Java中相同。 只需将嵌套对象更改为静态对象即可。