一开始使用List<testDto> s = new ArrayList<>(); s.sort(Comparator.comparing(testDto::getNum)); 排序出现报错: java.lang.NullPointerException: Cannot invoke "java.lang.Comparable.compareTo(Object)" because the return value of "java.util.function.Function.apply(Object)" is null 我还以为方法写错了,结果网上查了一下num是有空值导致,然后以为加个 Comparator.nullsFirst()就可以了,结果加上后还是一样报错 后面看到有这个方法就试试,结果发现排序也可以,报错也没有了 s.sort(Comparator.comparing(testDto::getNum,Comparator.nullsFirst(Comparator.naturalOrder()))); for(testDtoss : s){ System.out.println(ss.getNum()); }
compareTo(Object)“ because the return value of “java.util.function.Function.apply(Object)“ is null
文章讲述了作者在对List中的testDto对象进行排序时遇到NullPointerException,原因是num属性存在空值。通过添加Comparator.nullsFirst()和Comparator.naturalOrder()解决了空值问题并成功进行了排序。
摘要由CSDN通过智能技术生成