Dans la version Java 9, les méthodes Optional.ifPresentOrElse() et Optional.or() ont été introduites pour améliorer leur fonctionnalité. La méthode Optional.ifPresentOrElse() vérifie si la valeur est présente et si elle est présente, applique l'opération avec la valeur, sinon renvoie un no-op tandis que la méthode Optional.or() vérifie si la valeur est présente et si elle est présente. renvoie l'option contenant la valeur, sinon renvoie l'optionnel appliqué à la fonction Fournisseur. La méthode Optional.ifPresentOrElse() contient deux paramètres, Consumer et Runnable, tandis que la méthode Optional.or() ne contient qu'un seul paramètre, Supplier. La syntaxe de
<strong>public void ifPresentOrElse(Consumer<? super T><!--? super T--> action, Runnable emptyAction)</strong>
import java.util.Optional; import java.util.concurrent.atomic.AtomicInteger; public class IfPresentOrElseMethodTest { public static void main(String args[]) { optionalIsPresent(); optionalIsEmpty(); } private static void optionalIsPresent() { <strong>Optional<String></strong> optional = <strong>Optional.of</strong>("Test"); AtomicInteger successCounter = new AtomicInteger(); AtomicInteger emptyOptionalsCounter = new AtomicInteger(); optional.<strong>ifPresentOrElse</strong>(x -> successCounter.incrementAndGet(), () -> emptyOptionalsCounter.incrementAndGet()); System.out.println(successCounter.get()); System.out.println(emptyOptionalsCounter.get()); } private static void optionalIsEmpty() { Optional optional = <strong>Optional.empty()</strong>; AtomicInteger successCounter = new AtomicInteger(); AtomicInteger emptyOptionalsCounter = new AtomicInteger(); optional.<strong>ifPresentOrElse</strong>(x -> successCounter.incrementAndGet(), () -> emptyOptionalsCounter.incrementAndGet()); System.out.println(successCounter.get()); System.out.println(emptyOptionalsCounter.get()) } }
<strong>1 0 0 1</strong>
<strong>public Optional<T> or(Supplier<? extends Optional<? extends T<!--? extends Optional<? extends T-->>> supplier)</strong>
import java.util.Optional; public class OptionalOrMethodTest { public static void main(String args[]) { optionalIsPresent(); optionalIsEmpty(); } private static void optionalIsPresent() { <strong>Optional<String></strong> optional1 = <strong>Optional.of</strong>("Test1"); <strong>Optional<String></strong> optional2 = <strong>Optional.of</strong>("Test2"); <strong>Optional<String</strong><strong>></strong> optional3 = <strong>optional1.or</strong>(() -> optional2); System.out.println(optional3.get()); } private static void optionalIsEmpty() { <strong>Optional<String></strong> optional1 = <strong>Optional.empty()</strong>; <strong>Optional<String></strong> optional2 = <strong>Optional.of</strong>("Test2"); <strong>Optional<String></strong> optional3 = <strong>optional1.or</strong>(() -> optional2); System.out.println(optional3.get()); } }
<strong>Test1 Test2</strong>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!