Derjenige, der null haben kann. das ist alles.
Es gibt keine beängstigende Krankheit über das, was als Modell oder Objekt bezeichnet wird.
Wenn es also eine Entitätsklasse namens KWSK gibt
Sie können mit null umgehen, indem Sie es als optionales
Optional.java
package optional;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
public class Practice {
public static void main(String[] args) {
//Initialisierung von Optional
Optional<String> empty = Optional.empty();
// Optional<String>Zu String(Nehmen Sie den Inhalt heraus)
String str = empty.get();
//Stellen Sie sicher, dass es einen Wert hat, nicht null
empty.isPresent(); // false
System.out.println(run("a"));
System.out.println(run2("a"));
}
/**
*Gibt ein Argument zurück<br>
*Gibt ein leeres Zeichen zurück, wenn das Argument null ist
*
* @param str
* @return
*/
private static String run(String str) {
return Optional.ofNullable(str).orElse("");
}
/**
*Gibt ein Argument zurück<br>
*NoSuchElementException tritt auf, wenn das Argument null ist(get()Weil die Methode nicht durchgeführt werden kann)
*
* @param str
* @return
*/
private static String run2(String str) {
return Optional.of(str).get();
}
/**
*Sie können auch filter- und mapähnliche Streams verwenden
*Sie können auch Stream verwenden
*
* @param str
*/
private static void run3(String str) {
Optional.ofNullable(str).filter(v -> v.length() == 1).isPresent();
Optional.ofNullable(str).map(v -> v + "2").isPresent();
List<Optional<String>> list = new ArrayList<Optional<String>>();
list.add(Optional.of("a"));
list.add(Optional.of("b"));
list.add(Optional.of("c"));
list.add(Optional.empty());
list.stream().filter(Optional::isPresent).map(Optional::get).forEach(System.out::println);
}
}
ist.
Ich habe es im Code zusammengestellt Was ich meine, ist ein Null-Experte
Wenn Sie sich bei einem Modell fragen, was Sie mit null tun sollen, denken Sie vorerst nur an Optional
Optional.ofNullable(Derjenige, der null beurteilen will).orElse("");
In der get ()
-Methode wird beim Wiederherstellen vom optionalen Typ NoSuchElementexception angezeigt, wenn Sie nicht vorsichtig sind.
Sie können die gruselige Grunderkrankung überwinden, wenn Sie es gründlich tun!
Die bedingte Verzweigung im Booleschen Wert der Methode "isPresent" ist praktisch, um bald null im Stream zu erhalten. Es ist einfach, es an ein null beängstigendes System wie findFirst anzuhängen
Objects::nonNull
Oder
Objects::toString
Aber es scheint, dass es gehandhabt werden kann, aber der Objekttyp scheint ein letzter Ausweg zu sein. Ich kenne den detaillierten Grund nicht, warum Optional besser ist. Es fühlt sich an, als müsstest du das nicht tun.
Optionale offizielle Referenz Offizielle Referenz zu Objekten
Recommended Posts