Я пытаюсь реорганизовать некоторый код, чтобы он возвращал список необязательных вместо необязательных.
У меня есть следующий список в моем классе
private final List<Mapper<? extends Message>> mappers;
Существует частный метод, который создает функции для этих сопоставителей и возвращает список сообщений
private List<Message> mapToFeature() {
mappers.stream()
.map(mapper -> mapper.createFeature())
.collect(Optionals.toList());
}
Интерфейс Mapper выглядит следующим образом:
public interface Mapper<T extends Message> {
Optional<T> createFeature();
}
Метод Optionals.toList()
возвращает Collector для фильтрации существующих опций в Список.
Я хочу изменить интерфейс (и все соответствующие классы), чтобы он возвращал список опций
public interface Mapper<T extends Message> {
List<Optional<T>> createFeature();
}
У меня нет метода в утилите Optionals для фильтрации существующих опций из нескольких списков. Как я смогу сделать то же самое, не внося никаких изменений в класс util?