Groovy:通过列表访问类字段

时间:2017-11-13 13:04:16

标签: list groovy

首先,我很抱歉提出这样一个愚蠢的问题,但快速的谷歌搜索对我没什么帮助...

我是一个Java delevoper,对Groovy来说很新。请考虑以下代码段:

class Person {
    public String name
}

​def jack = new Person()
jack.name = "Jack"

​
def bob = new Person()
bob.name = "Bob"

def list = new java.util.ArrayList()

list.add(jack)
list.add(bob)

println list.name​

执行它会给出以下输出(列表中每个name的{​​{1}}字段值列表):

Person

所以我的问题是用于调用[Jack, Bob] 的相应java代码是什么? 我的假设是它转化为:

list.name

当有人打电话给list.stream().map(person -> person.name).collect(Collectors.toList())时,有人可以解释一下究竟发生了什么吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

您的代码

list.property

是写这篇文章的最短途径。这里groovy暗示的是使用扩展运算符

list*.property

(注意那里的*)。对于.property.getProperty() 可以缩短,以获取对getter的隐式调用。

所以你的假设是正确的,这是值.getProperty()的热切集合,返回ArrayList