Warum wird das optionale <T> als letzte Klasse deklariert?

Ich habe mit folgender Frage gespielt:Verwendung von Java 8 Optional mit Stream :: flatMap und wollte einer benutzerdefinierten Methode eine Methode hinzufügenOptional<T> und dann überprüfen, ob es funktioniert hat.
Genauer gesagt wollte ich eine hinzufügenstream() zu meinemCustomOptional<T> Das gibt einen leeren Stream zurück, wenn kein Wert vorhanden ist, oder einen Stream mit einem einzelnen Element, wenn es vorhanden ist.

Ich bin jedoch zu dem Schluss gekommen, dassOptional<T> wird als endgültig erklärt.

Warum ist das so? Es gibt jede Menge Klassen, die nicht als endgültig deklariert sind, und ich persönlich sehe hier keinen Grund, dies zu deklarierenOptional<T> Finale.

Als zweite Frage: Warum können nicht alle Methoden endgültig sein, wenn die Sorge besteht, dass sie überschrieben werden und die Klasse nicht endgültig bleibt?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage