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

Jér*_*nge 25 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));

    }

}
Run Code Online (Sandbox Code Playgroud)

然而,compareTo()的Javadoc 没有提到参数不能null.这很奇怪,因为Javadocs通常会提到参数不可用的时候null.

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

Sni*_*las 35

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

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