10

私は人ができることは本当にクールだと思いました:

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を取得します:引数の数が間違っています

スクリプトとネストされたクラスを使用して、名前付きパラメーターの引数スタイルを呼び出すことはまだ可能かどうか疑問に思います。

よろしく

4

2 に答える 2

10

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"
于 2013-02-19T18:54:26.483 に答える