Как проверить, является ли Integer нулевым или нулевым в Java?

Есть ли более сжатый способ записи

if (myInteger != null && myInteger != 0) { ... }

Для примера, для Strings вы можете использовать StringUtils.isBlank()

Ответ 1

С Java 8:

if (Optional.ofNullable(myInteger).orElse(0).intValue() != 0) {
  ...
}

Обратите внимание, что Optional может помочь вам полностью избежать условий if, в зависимости от вашего варианта использования...

Ответ 2

Я бы использовал для этого трехмерное условие. Что-то вроде:

public static boolean isNullorZero(Integer i){
    return 0 == ( i == null ? 0 : i);
}

Это невозможно прочитать, я согласен;)

Ответ 3

В зависимости от вашей реализации myInteger (т.е. если свойство Integer внутри myInteger - это тип поля Integer или примитив unboxed int), вам может потребоваться только одно условие.

Integer являются действительными объектами, что означает, что они имеют возможность быть null. При этом они могут также содержать 0 в качестве значения. Итак, в этом случае вам придется делать обе проверки.

int является примитивным и не может содержать значение null. В этом случае вам нужно будет проверить, не является ли ваше свойство int равным 0.