単一のフィールドを取得するには、次のようにします。
devices.find { it.id == 'PPL000000011906' }?.firstName
クロージャーとパラメーターが必要な場合は、次のようにします。
def findPerson = { person -> devices.find { it.id == person } }
def myPerson = findPerson('PPL000000011906')
println "FirstName: ${myPerson?.firstName} LastName: ${myPerson?.lastName}"
あなたが夢中になりたいなら、これを行うことができます:
ArrayList.metaClass.findThingInMap = { field, value -> delegate.find { it[field] == value } }
これにより、ハッシュマップを含む配列リスト内のフィールドの値を見つけることができます。これはあなたが持っているものです。
def myPerson = devices.findThingInMap('id', 'PPL000000011906')
println "FirstName: ${myPerson?.firstName} LastName: ${myPerson?.lastName}"
柔軟性が必要でない限り、私は実際にはそうしませんが、これは groovy の真の力と素晴らしさを示しています。