gpt4 book ai didi

java - 按嵌套对象的一个​​属性对对象数组进行排序

转载 作者:搜寻专家 更新时间:2023-10-31 20:10:05 27 4
gpt4 key购买 nike

我需要通过对象属性之一的一个属性来比较一组对象。
我正在做:

List<Sell> collect = sells.stream()
.sorted(Comparator.comparing(Sell::getClient.name, String::compareToIgnoreCase))
.collect(Collectors.toList());

它不是编译,有没有人知道该怎么做?

谢谢。

最佳答案

这是导致错误的代码部分

Sell::getClient.name

您可以创建对特定类型的任意对象的(静态或非静态)方法的引用。对 Sell 类型的任何对象的 getClient 方法的引用如下所示:

Sell::getClient

但是方法引用不是对象,没有成员可以访问。使用此代码,您将尝试访问引用的成员变量(但不能)

Sell::getClient.name

此外,方法引用不是类,因此您无法从中获取其他方法引用。如果你尝试过,你不能做那样的事情:

Sell::getClient::getName

@mlk 为您的特定情况提供了正确的语法:

  1. x -> x.getClient().name
  2. Sell::getClientName(不必是静态方法)

关于java - 按嵌套对象的一个​​属性对对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33753899/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com