Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用比较器排序-空指针异常_Java_Java 8 - Fatal编程技术网

Java 使用比较器排序-空指针异常

Java 使用比较器排序-空指针异常,java,java-8,Java,Java 8,我试图在Asc中对CalculationModelDetails进行排序,如果priceRange(getPriceRange()==null)将其放在排序列表的最后一位 我在这里遇到了一个空指针异常Comparator.comparating(CalculationModelDetail::getPriceRange,(s1,s2)->s2.compareTo(s1)) 当我运行测试时..您正在detail0中将priceRange设置为null,因此在获取priceRange值时进行排序时,

我试图在
Asc
中对
CalculationModelDetails
进行排序,如果
priceRange(getPriceRange()==null)
将其放在排序列表的最后一位

我在这里遇到了一个空指针异常
Comparator.comparating(CalculationModelDetail::getPriceRange,(s1,s2)->s2.compareTo(s1))


当我运行测试时..

您正在
detail0
中将
priceRange
设置为null,因此在获取
priceRange
值时进行排序时,您正在对null引用调用
compareTo
方法。这就是问题所在。
您需要在
detailComparator

中处理此空值,但这不是应该由Comparator处理的。空值我需要按priceRange的Asc顺序对这些值进行排序,并放置空值(calculationModelDetail.getPriceRange()==null)在排序列表的末尾..@ArdentJavaLearner:但是detailComparator也正确地接收空值。。因此,必须处理这些值。您不想在这里设置排序顺序,那么您可以在s1或s2为null的情况下返回任何int。如果两个值仅可用,则转到compareTo.Done。。但这在编辑历史@ArdentJavaLearnerI中仍然可见。我查看了编辑历史。。。在我看来,这里面没有任何东西是一个通情达理/知识渊博的人会认为是安全敏感的。但是,如果你真的有顾虑,你应该按照你的建议去做