Я знаю, что привлек ваше внимание. О, каждый разработчик Java знает эту боль.

Только что мой друг написал мне, что он застрял в офисе только из-за незначительной ошибки, которая привела к NPE. Это напомнило мне, что мне есть чем поделиться.

Все мы используем Коллекции, и в половине случаев мы используем тот или иной тип списков. Поэтому всякий раз, когда мне приходится работать со списком,

Например,

  • Мне нужно перебрать список, используя forEach, или
  • найти размер списка

Я использую небольшой служебный метод, который всегда есть в моем AppUtils.java.

Так что вместо того, чтобы сказать,

itemList.size();

Я использую,

AppUtils.emptyIfNull(itemList).size();

А реализация emptyIfNull очень проста,

/***
 * To do null-safe operations on list.
 * Prevents {@link NullPointerException}.
 * e.g., list.forEach will throw {@link NullPointerException} but
 * emptyIfNull(list).forEach will terminate gracefully even if list    is null
 * @param iterable
 * @param <T>
 * @return empty list if it is null.
 */
public static <T> List<T> emptyIfNull(List<T> iterable) {
    return iterable == null ? Collections.emptyList() : iterable;
}

В мире микросервисов api, который вы используете, может привести к нулевому списку. Это стало блаженством для нашей команды.