Почему Optional <T> объявлен как финальный класс?
Я играл со следующим вопросом:Использование Java 8 необязательно с Stream :: flatMap и хотел добавить метод в кастомOptional<T>
и затем проверьте, сработало ли это.
Точнее, я хотел добавитьstream()
к моемуCustomOptional<T>
который возвращает пустой поток, если значение отсутствует, или поток с одним элементом, если он присутствует.
Тем не менее, я пришел к выводу, чтоOptional<T>
объявлен как окончательный.
Почему это так? Есть множество классов, которые не объявлены как окончательные, и я лично не вижу причины здесьOptional<T>
окончательный.
В качестве второго вопроса, почему не все методы могут быть финальными, если есть опасение, что они будут переопределены и оставят класс не финальным?