У меня есть 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 не равен нулю, он работает нормально.Как я могу решить эту проблему?