Optional ist definiert als eine Containerklasse in Java oder besser gesagt, ein Container mit nur einem Element wird gespeichert.
Containerobjekt, das einen Nichtnullwert enthalten kann oder nicht.
Optionale Klassenstruktur Optionale Eigenschaften
Die optionale Klasse enthält zwei Eigenschaften:
Klassenattribut: leeres Objektattribut: Wert
Das leere Attribut wird verwendet, um ein optionales Objekt mit Value Null zu speichern.
Mit dem Wertattribut wird nicht Null-Objekte gespeichert.
Optionale Methode
Optional verfügt über zwei Baumethoden, die beide durch privat modifiziert werden.
private optional () {this.Value = null;} private optional (t value) {this.Value = Objects.requirenonnull (Wert);};Die parameterlose Konstruktionsmethode wird verwendet, um leer zu initialisieren. Der Parameterkonstruktor wird verwendet, um Nicht-Null-Objekte zu initialisieren.
Da der Konstruktor als privat geändert wird, kann optional nur Objekte über Klassenmethoden aufrufen, wenn er instanziieren möchte. Optional bietet drei Klassenmethoden.
leer: Gibt das optionale Objekt mit Wertnull zurück, der den Wert des nicht-null-optionalen Objekts von Nullable: Der Wert des Wertes zurückgibt, das entsprechende optionale Objekt gemäß, ob der Parameter null ist oder nicht.
public static <t> optional <t> leer () {optional <t> t = (optional <t>) leer; return t;} public static <T> optional <t> von (t value) {neu optional <> (Wert);} public static <T> optional <t> nullable (t -Wert) {return value == null? leer (): von (Wert);}Beispielmethode Einführung
| Verfahren | Parametertyp | Rückgabetyp | veranschaulichen | |
|---|---|---|---|---|
| erhalten | keiner | T | Wert wirft die NosucchelementException -Ausnahme für NULL aus | |
| isspresent | keiner | boolean | Wenn der Wert null ist, wird False zurückgegeben | |
| Ifpresent | Verbraucher <? super t> | Leere | Wenn die optionale Instanz einen Wert hat, rufen Sie den Verbraucher dafür an, sonst wird er nicht verarbeitet. | |
| Filter | Prädikat <? super t> | Optional <t> | Wenn der Wert vorhanden ist und das angegebene Prädikat erfüllt, wird ein optionales Objekt mit dem Wert zurückgegeben. Andernfalls wird ein leeres optionales Objekt zurückgegeben | |
| Karte | Funktion <? Super t,? erweitert u> | Optional <u> | Wenn der Wert vorhanden ist, wird der angegebene Zuordnungsfunktionsaufruf auf dem Wert ausgeführt und das optionale <u> -Objekt wird zurückgegeben. | |
| Flatmap | Funktion <? Super t, optional <u >> | Optional <u> | Wenn der Wert vorhanden ist, wird der angegebene Zuordnungsfunktionsaufruf auf dem Wert ausgeführt, wodurch ein nicht null-optionales Objekt zurückgegeben wird. | |
| Orelse | T | T | Geben Sie es zurück, wenn ein Wert vorhanden ist, andernfalls senden Sie einen Standardwert zurück | |
| Orelseget | Lieferant <? erweitert t> | T | Gibt den Wert zurück, wenn ein Wert vorliegt, andernfalls gibt ein von der angegebener Lieferantenschnittstelle generierter Wert zurück | |
| Orelsethrow | Lieferant <? erweitert x> | <X erweitert Throwable> | Geben Sie es zurück, wenn ein Wert vorhanden ist, andernfalls wird eine Ausnahme, die von der angegebenen Lieferantenschnittstelle generiert wird | |