Недокументированное String.compareTo (null) NPE? - PullRequest
25 голосов
/ 24 августа 2011

Следующий небольшой тест бросает NPE:

public class Test {

    public static void  main(String[] args) {

        String a = "a";
        String b = null;

        System.out.println(a.compareTo(b));

    }

}

Тем не менее, Javadoc compareTo () не упоминает, что параметр не может быть null.Это странно, поскольку Javadocs обычно упоминает, когда параметры не могут быть null.

. Это просто сбой в документации или есть более фундаментальная причина / поворот, которую я пропускаю?

1 Ответ

35 голосов
/ 24 августа 2011

Вы можете получить некоторое объяснение, когда посмотрите на интерфейс Comparable :

Обратите внимание, что null не является экземпляром какого-либо класса, и e.compareTo (null) долженгенерировать исключение NullPointerException, даже если e.equals (null) возвращает false.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...