[JAVA] À propos facultatif

Qu'est-ce qui est facultatif

Celui qui peut avoir null. c'est tout.

En détail

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 .

Exemple concret

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.

Alors qu'est-ce qui est pratique?

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

À propos facultatif
À propos =
À propos de method.invoke
À propos de Kotlin
À propos de attr_accessor
À propos de Hinemos
À propos de l'héritage
À propos de Docker
À propos des rails 6
À propos du printemps ③
À propos d'énumération
À propos du polymorphisme
À propos du hachage
À propos de JitPack
À propos de ça ()
À propos de l'encapsulation
À propos de JAVA_HOME
À propos de statique
À propos des exceptions
Pensez aux 7 règles d'Optionnel
À propos de la portée
[Maven] À propos de Maven
À propos de la gestion des exceptions
À propos de l'interface Java
[Java] À propos des fonctionnalités de Java 12
À propos du routage des rails
À propos de la complexité cyclique
À propos des génériques AsyncTask
À propos des symboles Ruby
À propos de la multiplication des tableaux
[Java] À propos des tableaux
Java Type facultatif
À propos de l'héritage de classe.
À propos de Spring AOP
À propos de Ruby Hash
À propos des méthodes singulières
À propos des outils de création
Étudier Java 8 (facultatif)
Mâchez l'API
[À propos du double hachage]
Quelque chose à propos de java
Où est Java
À propos de la méthode de HttpServlet ()
À propos des fonctionnalités Java
À propos de SIGNING_REGION: NoSuchFieldError