未记载的String.compareTo(null)NPE?
以下小测试抛出一个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
时提及。
这只是文档中的一个小故障还是有一个更基本的原因/扭曲我错过了?
当您查看Comparable接口时,您可以获得一些解释:
请注意,null不是任何类的实例,并且即使e.equals(null)返回false,e.compareTo(null)也应抛出NullPointerException。