2017-03-14 9 views
0

内のプロパティによって、クラスのインスタンス:リファレンス次を考えるのGroovy

class Parent { 
     private String name, 
     private List<Child> children 
    } 

    class Child { 
     private String name 
    } 

私が使用して特定の子を参照できるようにしたいと思います:

parent.children('bob') 

の代わりにインデックス別:

parent.children[0] 

これはGroovyでどのように行われますか?

+1

家族構造を扱っている場合は、次のようなことに気をつけてください:https://www.theguardian.com/lifeandstyle/2014/jun/28/two-of-our-childen-have-same-name –

答えて

2

ちょうどそれを行うにはParentにメソッドを追加します。

Child children(String name) { 
    children.find { it.name == name } 
} 
1

はマップとして子どもを定義します。

Map<String,Child> children 

その後、

parent.children.bob 

または

parent.children[ 'bob' ] 
+0

子どもの初期宣言は、私がクラスの他のプロパティではなく、プロパティ "name"を探していることを "知っている"のですか? – hippocrene

+0

名前で設定されたマップに値を入れる必要があります。 'parent.children [child.name] = child' – injecteer

関連する問題