У меня есть объект Photo
:
public class Photo {
@Id
private String id;
private LocalDateTime created;
private Integer poNumber;
}
poNumber может быть нулевым для некоторых фотографий или всех фотографий в наборе. Я хочу отсортировать набор фотографий в соответствии с poNumber, чтобы наименьшее значение poNumber появилось первым в отсортированном наборе. poNumber также может дублироваться в наборе. Если poNumber дублируется, то сортируйте в соответствии с созданным (самое раннее созданное фото появляется первым). Если poNumber - ноль, тогда сортируйте согласно созданному.
Я попробовал следующий код:
Set<Photo> orderedPhotos = new TreeSet<>(
Comparator.nullsFirst(Comparator.comparing(Photo::getPoNumber))
.thenComparing(Photo::getCreated));
for (Photo photo : unOrderedPhotos) {
orderedPhotos.add(photo);
}
Но он выдает NullPointerException
всякий раз, когда poNumber равен нулю. Если poNumber не равен нулю, он работает нормально. Как я могу решить эту проблему?