我需要通过对象属性之一的一个属性来比较对象数组。
我在做 :
List<Sell> collect = sells.stream()
.sorted(Comparator.comparing(Sell::getClient.name, String::compareToIgnoreCase))
.collect(Collectors.toList());
编译不了,有谁知道怎么办吗?
Thanks.
这是导致错误的代码部分
Sell::getClient.name
您可以创建对特定类型的任意对象的(静态或非静态)方法的引用。参考getClient
任何对象的方法Sell
类型如下所示:
Sell::getClient
但方法引用不是对象,也没有可以访问的成员。使用此代码,您尝试访问引用的成员变量(但不能)
Sell::getClient.name
此外,方法引用不是类,因此您无法从它们获取另一个方法引用。如果你尝试过,你就无法做这样的事情:
Sell::getClient::getName
@mlk 提供了适合您的特定情况的正确语法:
x -> x.getClient().name
-
Sell::getClientName
(不一定是静态方法)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)