Groovy Beansを使用すると、フィールドに直接アクセスできます。getter/setterメソッドを定義する必要はありません。それらはあなたのために生成されます。Beanプロパティにアクセスするたびに、getter/setterメソッドが内部的に呼び出されます。。@演算子を使用すると、この動作をバイパスできます。次の例を参照してください。
class Person {
String name
Address address
List<Account> accounts = []
}
class Address {
String street
Integer zip
}
class Account {
String bankName
Long balance
}
def person = new Person(name: 'Richardson Heights', address: new Address(street: 'Baker Street', zip: 22222))
person.accounts << new Account(bankName: 'BOA', balance: 450)
person.accounts << new Account(bankName: 'CitiBank', balance: 300)
コレクションを扱っていない場合は、アクセスしたいフィールドを呼び出すだけです。
assert 'Richardson Heights' == person.name
assert 'Baker Street' == person.address.street
assert 22222 == person.address.zip
コレクション内のフィールドにアクセスする場合は、要素を選択する必要があります。
assert 'BOA' == person.accounts[0].bankName
assert 300 == person.accounts[1].balance