@n199a
Java

Condition 'customArray == null' is always 'false' when reached в Java?

Если проверка объекта customArray в методе выглядит так, когда сначала идет проверка на размер customArray.length() == 0, а потом на null customArray == null, то компилятор выдает предупреждение вида
Condition 'customArray == null' is always 'false' when reached
. Но если поменять проверку местами таким образом, чтобы вначале была проверка на null customArray == null, а потом на размер customArray.length() == 0, то предупреждение исчезает. Почему так?

@Override
    public int findMinValueMethodStream(CustomArray customArray) throws ArrayException {
        if(customArray.length() == 0 || customArray == null) {
            LOGGER.log(Level.ERROR, "CustomArray object is empty or null!");
            throw new ArrayException("CustomArray object is empty or null!");
        }
// some code
}


Класс **CustomArray** - это просто класс оболочка над int[] array.
  • Вопрос задан
  • 358 просмотров
Решения вопроса 1
BorLaze
@BorLaze
Java developer
Потому что условия проверяются слева направо.

Поэтому ставить проверку customArray на null второй нет никакого смысла - если массив не null, то до нее дело не дойдет; если же он null, то выполнение свалится с NPE.

А вот поменять их местами смысл как раз имеет - первым мы проверяем, не null ли customArray, и только если нет, тогда обращаемся к объекту, запрашивая его размер.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы