class Person {
public String name;
public String getName() { return name; }
}
是否有通过lambda访问流API中的字段的特殊语法糖?我明白了:
List<Person> persons;
persons.stream().map(Person::getName).collect(Collectors.toList());
persons.stream().map(p -> p.name).collect(Collectors.toList());
类似的东西(哪些不起作用,我知道):
persons.stream().map(Person::name).collect(Collectors.toList());
答案 0 :(得分:6)
字段访问没有类似于方法引用的语法。如果有的话,有时会很方便。
事实上,没有理由认为Java在将字段视为方法方面有点奇怪。由于字段和方法可以具有相同的名称,因此也会导致重载困难。
解决方法是为您提供的字段提供getter,或者使用lambda表达式。