【发布时间】:2019-11-19 09:40:37
【问题描述】:
我正在尝试对学生列表进行排序,其中student 具有地址和语言类的实例变量
Class Student {
Address address;
Language language;
//Other fields
//Setter getters
}
Class Address {
String streetName;
//Other fields
//Setter getters
}
Class Language {
String name;
//Other fields
//Setter getters
}
我正在尝试先按街道名称然后按语言对这个学生列表进行排序,并希望使用以下代码将空值保留在底部,但是当地址或语言为空时得到NullPointerException。
list.sort(Comparator.nullsLast(Comparator.comparing((Student student-> student.getAddress().getStreetName()).thenComparing((Student student) -> student.getLanguage().getName())));
【问题讨论】:
-
如果地址为空,student.getAddress().getStreetName() 会抛出 NPE
-
您的比较器处理
Student为null的情况,而不是属性值为null的情况。与this answer比较 -
谢谢@Holger。你能建议如何处理空地址和空语言。仍然得到NullPointerException。
标签: java sorting java-8 comparator