Celui qui peut avoir null. c'est tout.
Il y a une maladie absolument effrayante à propos de ce qu'on appelle un modèle ou un objet.
Donc, s'il existe une classe Entity appelée KWSK
Vous pouvez gérer null en le rendant facultatif
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) {
//Initialisation de facultatif
Optional<String> empty = Optional.empty();
// Optional<String>To String(Sortez le contenu)
String str = empty.get();
//Assurez-vous qu'il a une valeur et non null
empty.isPresent(); // false
System.out.println(run("a"));
System.out.println(run2("a"));
}
/**
*Renvoie un argument<br>
*Renvoie un caractère vide si l'argument est nul
*
* @param str
* @return
*/
private static String run(String str) {
return Optional.ofNullable(str).orElse("");
}
/**
*Renvoie un argument<br>
*NoSuchElementException se produit lorsque l'argument est nul(get()Parce que la méthode ne peut pas être appliquée)
*
* @param str
* @return
*/
private static String run2(String str) {
return Optional.of(str).get();
}
/**
*Vous pouvez également utiliser un filtre et une carte comme un flux
*Vous pouvez également utiliser stream
*
* @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);
}
}
est.
Je l'ai mis ensemble dans le code Donc ce que je veux dire est un expert nul
Lorsque vous traitez avec un modèle, si vous vous demandez quoi faire avec null, pensez à facultatif pour le moment
Optional.ofNullable(Celui qui veut juger nul).orElse("");
Dans la méthode get ()
lors de la restauration à partir du type facultatif, NoSuchElementexception apparaîtra si vous ne faites pas attention.
Vous pouvez surmonter la maladie effrayante nulle de base si vous le faites à fond!
Le branchement conditionnel de la méthode ʻIsPresent` dans le booléen est pratique pour null dans le flux Il est facile de l'attacher simplement à un système effrayant nul tel que findFirst
Objects::nonNull
Ou
Objects::toString
Mais il semble que cela puisse être géré, mais le type Objects semble être un dernier recours. Je ne connais pas la raison détaillée pour laquelle l'option facultative est meilleure. On a l'impression que vous n'êtes pas obligé de faire ça.
Référence officielle facultative Référence officielle des objets
Recommended Posts