Вы можете просто обернуть свою функцию сравнения в Comparator.nullsFirst
.Не знаю, откуда у вас идея, что она работает только для массивов!
shipTo.sort(Comparator.nullsFirst((o1, o2) ->
o1.getDescription().compareTo(o2.getDescription()))));
С другой стороны, возможно, проблема в том, что getDescription
возвращает ноль.Но вы можете просто делегировать компаратору nullsFirst
следующим образом:
shipTo.sort((o1, o2) -> Comparator.nullsFirst(String::compareTo)
.compare(o1.getDescription(), o2.getDescription()));
Или объединить два, если либо объект, либо его описание могут быть нулевыми.
Если применяется второй случай, выможет исключить создание строкового компаратора:
Comparator<String> c = Comparator.nullsFirst(String::compareTo);
shipTo.sort((o1, o2) -> c.compare(o1.getDescription(), o2.getDescription()));