Por que <T> opcional é declarado como uma classe final?

Eu estava brincando com a seguinte pergunta:Usando o Java 8's opcional com Stream :: flatMap e queria adicionar um método a um costumeOptional<T> e depois verifique se funcionou.
Mais preciso, eu queria adicionar umstream() para o meuCustomOptional<T> que retorna um fluxo vazio se nenhum valor estiver presente ou um fluxo com um único elemento, se estiver presente.

No entanto, cheguei à conclusão de queOptional<T> é declarado como final.

Porque isto é assim? Existem muitas classes que não são declaradas como finais e, pessoalmente, não vejo uma razão aqui para declararOptional<T> final.

Como segunda pergunta, por que nem todos os métodos podem ser finais, se a preocupação é que eles sejam substituídos e deixem a classe não final?

questionAnswers(4)

yourAnswerToTheQuestion