list2 = list.stream().sorted(Comparator.comparing(dto -> orderList.indexOf(dto.getOrgType())) .thenComparing(CxCadreSituationDTO::getEstab,Comparator.nullsFirst(String::compareTo)).reversed()) .map(CxCadreSituationDTO::getEstabDesc).distinct().collect(Collectors.toList());getOrgType报错Cannot resolve method 'getOrgType()'
时间: 2023-12-10 08:37:43 浏览: 361
这个报错说明 `dto` 对象没有 `getOrgType()` 方法。你可以尝试将 `Comparator.comparing(dto -> orderList.indexOf(dto.getOrgType()))` 这一行改为 `Comparator.comparing(CxCadreSituationDTO::getOrgType, Comparator.comparingInt(orderList::indexOf))`,这样就可以直接使用 `getOrgType()` 方法了。即:
```
list2 = list.stream()
.sorted(Comparator.comparing(CxCadreSituationDTO::getOrgType, Comparator.comparingInt(orderList::indexOf))
.thenComparing(CxCadreSituationDTO::getEstab, Comparator.nullsFirst(String::compareTo)).reversed())
.map(CxCadreSituationDTO::getEstabDesc)
.distinct()
.collect(Collectors.toList());
```
这里使用了方法引用 `CxCadreSituationDTO::getOrgType` 来获取 `orgType` 属性。同时使用了 `Comparator.comparingInt(orderList::indexOf))` 来获取 `orderList` 中元素的索引,这个方法会返回一个 `int` 类型的索引值,可以直接用于比较。
阅读全文