Java 处理比较器的最佳实践

Java 处理比较器的最佳实践,java,nullpointerexception,compareto,Java,Nullpointerexception,Compareto,如何处理compareTo方法中的空对象。这总是会导致空指针异常。这是解决此问题的最佳方法。您可以在调用“compareTo”方法之前检查对象 像这样: if(obj != null){ //TODO } 您可以在调用“compareTo”方法之前检查对象 像这样: if(obj != null){ //TODO } 从以下方面的精细文档: 请注意,null不是任何类的实例,即使e.equals(null)返回false,e.compareTo(null)也应该抛出N

如何处理compareTo方法中的空对象。这总是会导致空指针异常。这是解决此问题的最佳方法。

您可以在调用“compareTo”方法之前检查对象

像这样:

if(obj != null){

  //TODO  

}

您可以在调用“compareTo”方法之前检查对象

像这样:

if(obj != null){

  //TODO  

}

从以下方面的精细文档:

请注意,null不是任何类的实例,即使e.equals(null)返回false,e.compareTo(null)也应该抛出NullPointerException


如果不想处理NullPointerException,请不要将null放入已排序的集合中。

来自以下详细文档:

请注意,null不是任何类的实例,即使e.equals(null)返回false,e.compareTo(null)也应该抛出NullPointerException


如果不想处理NullPointerException,请不要将null放入已排序的集合。

避免与null对象进行比较?它在集合中出现,而在迭代时无效比较null对象?它在集合中出现,而在迭代时出现。如果使用
null.compareTo(对象),则这将没有帮助
-由于不对称的原因,应该给出相反的结果。您也有解决方案吗?据我所知,这是不可能的。使用
compareTo
,不可以。不要将
null
放入要排序的集合中。使用
Comparator.compare(x,y)
您可以使用它,但您应该确保它保持良好的定义(如果
null
小于或大于所有非null元素,则最容易)。如果您使用
null.compareTo(对象),这将没有帮助
-由于不对称的原因,应该给出相反的结果。您也有解决方案吗?据我所知,这是不可能的。使用
compareTo
,不可以。不要将
null
放入要排序的集合中。使用
Comparator.compare(x,y)
可以使用它,但应该确保它保持良好的定义(如果
null
小于或大于所有非null元素,则最容易使用)。