我正在尝试对这样的对象列表进行排序:
List<UsersDataFoundTo> mergedUsers = mergeUsersFound(ldapUsers, foundUsers);
return mergedUsers.sort((UsersDataFoundTo h1, UsersDataFoundTo h2) -> h1.getLastName().compareTo(h2.getLastName()));
在return语句上我得到一个错误:
Incompatible types.
Required: java.util.List<UsersDataFoundTo>
Found:void
那我该怎么办?
答案 0 :(得分:5)
写起来容易得多:
mergedUsers.sort(Comparator.comparing(UsersDataFoundTo::getLastName))
sort
的返回类型为void
,因此基本上是一个:
return mergedUsers;
答案 1 :(得分:2)
对于可重用,我认为UsersDataFoundTo类应实现Comparable并重写compareTo函数。
class UsersDataFoundTo implements Comparable<UsersDataFoundTo> {
private String lastNam;
public String getLastNam() {
return lastNam;
}
public void setLastNam(String lastNam) {
this.lastNam = lastNam;
}
@Override
public int compareTo(UsersDataFoundTo other) {
return getLastNam().compareTo(other.getLastNam());
}
}
然后,您可以使用收集实用程序对其进行排序:
List<UsersDataFoundTo> mergedUsers = //...
java.util.Collections.sort(mergedUsers);
我希望有帮助。