25

以下小测试会引发 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.

这只是文档中的一个小故障,还是我缺少更根本的原因/扭曲?

4

1 回答 1

36

当你查看Comparable接口时,你可以得到一些解释:

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

于 2011-08-23T22:58:10.670 回答