以下小测试引发了NPE:
public class Test {
public static void main(String[] args) {
String a = "a";
String b = null;
System.out.println(a.compareTo(b));
}
}
然而,compareTo()的Javadoc没有提到参数不能是null
。这很奇怪,因为Javadocs通常在参数不能为null
时提及。
这只是文档中的一个小故障还是有一个更基本的原因/扭曲我错过了?
答案 0 :(得分:35)
当您查看Comparable界面时,您可以获得一些解释:
请注意,null不是任何类的实例,而e.compareTo(null) 即使e.equals(null)返回,也应抛出NullPointerException 假的。