未记载的String.compareTo(null)NPE?

时间:2011-08-23 22:55:09

标签: java string null compareto

以下小测试引发了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时提及。

这只是文档中的一个小故障还是有一个更基本的原因/扭曲我错过了?

1 个答案:

答案 0 :(得分:35)

当您查看Comparable界面时,您可以获得一些解释:

  

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