Groovy 查找并返回嵌套树的成员
想象一下,我有一棵这样的嵌套树Groovy 查找并返回嵌套树的成员,groovy,Groovy,想象一下,我有一棵这样的嵌套树 invoices{ invoice(date: new Date(106,1,2)){ item(count:5){ product(name:'ULC', dollar:1499){ vendor(id:1) } } item(count:1){ product(name:'Visual Editor'
invoices{
invoice(date: new Date(106,1,2)){
item(count:5){
product(name:'ULC', dollar:1499){
vendor(id:1)
}
}
item(count:1){
product(name:'Visual Editor', dollar:499){
vendor(id:3)
}
}
}
invoice(date: new Date(106,1,2)){
item(count:4) {
product(name:'Visual Editor', dollar:499){
vendor(id:4)
}
}
}
假设我已经将其转换为invoice类列表的一个实例。现在,对于我来说,返回树中供应商id为3的供应商类的实例的最佳方法是什么
这是错误的,但有点像
Vendor myVendor=invoices*.item*.product*.Vendor.find{i.id==3}每个
spread
将属性收集到一个列表中,因此,您最后一次find{}
将在列表的列表中查找结果。您可以展平供应商
列表:
def vendor = invoices*.items*.product*.vendor.flatten().find { it.id == 3 }
assert vendor