Почему Optional <T> объявлен как финальный класс?

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

Тем не менее, я пришел к выводу, чтоOptional<T> объявлен как окончательный.

Почему это так? Есть множество классов, которые не объявлены как окончательные, и я лично не вижу причины здесьOptional<T> окончательный.

В качестве второго вопроса, почему не все методы могут быть финальными, если есть опасение, что они будут переопределены и оставят класс не финальным?

Ответы на вопрос(4)

Ваш ответ на вопрос