首先,我很抱歉提出这样一个愚蠢的问题,但快速的谷歌搜索对我没什么帮助...
我是一个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())
时,有人可以解释一下究竟发生了什么吗?
提前致谢!
答案 0 :(得分:0)
您的代码
list.property
是写这篇文章的最短途径。这里groovy暗示的是使用扩展运算符:
list*.property
(注意那里的*
)。对于.property
,.getProperty()
可以缩短,以获取对getter的隐式调用。
所以你的假设是正确的,这是值.getProperty()
的热切集合,返回ArrayList
。