Optional<ArrayList<String>> option = Optional.of(new ArrayList<>());
Optional<ArrayList<?>> doesntWork = option;
Optional<ArrayList<?>> works = option.map(list -> list);
Первая попытка назначения не компилируется, а вторая с map не компилируется. Такое ощущение, что map самом деле ничего не должна делать, но по какой-то причине она превращает мой Optional<ArrayList<String>> в Optional<ArrayList<?>>. Есть ли какой-то неявный актерский состав?