При return list.sorted выдает ошибка null

у меня есть список POJO мне нужно вывести их, но этого их надо сортировать по полю LatestPrice. При сортировке программа выдает ошибку null. Связи чем это может происходит ? введите сюда описание изображения

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Nowhere Man

Следует либо отфильтровать значения, содержащие null:

public List<Statistics> getList() {
    return statisticsService.listAll()
        .stream()
        .filter(stat -> stat != null && stat.getLatestPrice() != null)
        .sorted(Comparator.comparingDouble(Statistics::getLatestPrice))
        .collect(Collectors.toList());
}

либо отсортировать по полю, используя Comparator.nullsLast:

public List<Statistics> getList() {
    return statisticsService.listAll()
        .stream()
        .filter(Objects::nonNull)
        .sorted(Comparator.nullsLast(
            Comparator.comparingDouble(Statistics::getLatestPrice)
        ))
        .collect(Collectors.toList());
}

Также для таких задач можно использовать Spring Data и PagingAndSortingRepository или реализовать метод вида findByOrderByLatestPrice в обычном JpaRepository<Statistics>.

→ Ссылка