Давайте рассмотрим класс Parent
, который содержит только один атрибут Integer
. Я создал 6 объектов родительского класса, а значения атрибута равны 100, 20, 300, 400, 500, null
.
Теперь я добавил все объекты в список (имя списка — список). Затем я хочу получить объекты, значение атрибута которых больше 100
. Для этой цели я использовал потоки Java 8.
Predicate<Entity> predicate = e -> e.getParentId() < 100;
result = list.stream().filter(predicate).collect(Collectors.toList());
Я также хочу отсортировать список в порядке убывания. Для этой цели я использовал следующий код.
Comparator<Entity> comp = (d1,d2) -> d2.getId().compareTo(d1.getId());
list.sort(comp);
В обоих случаях я получаю NullPointerException
.
Как справиться с этим?
e
этоnull
илиe.getParentId()
? Еслиe.getParentId()
объявлен какInteger
(коробочный тип), он может быть нулевым. Но затем, когда он преобразуется вint
, чтобы сравнить его со 100, результатом будетNullPointerException
, если этоnull
. - person ajb   schedule 08.07.2015