Я знаю, что привлек ваше внимание. О, каждый разработчик 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, который вы используете, может привести к нулевому списку. Это стало блаженством для нашей команды.