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?