Assigne la valeur de Optional à une variable si présente

Bonjour, j’utilise Java en option. J’ai vu que le facultatif a une méthode ifPresent.

Au lieu de faire quelque chose comme:

Optional object = someMethod(); if(object.isPresent()) { Ssortingng myObjectValue = object.get().getValue(); } 

Je voulais savoir comment je pouvais utiliser Optional.ifPresent () pour affecter la valeur à une variable.

J’essayais quelque chose comme:

 Ssortingng myValue = object.ifPresent(getValue()); 

De quoi ai-je besoin de la fonction lambda pour obtenir la valeur assignée à cette variable?

Vous pouvez utiliser #orElse ou orElseThrow pour améliorer la lisibilité de votre code.

 Optional object = someMethod(); Ssortingng myValue = object.orElse(new MyObject()).getValue(); 

 Optional object = someMethod(); Ssortingng myValue = object.orElseThrow(RuntimeException::new).getValue(); 

Vous devez faire deux choses:

  1. Transformez votre Optional Optional en un Optional , dont la valeur est iff si l’original facultatif avait une valeur. Vous pouvez le faire en utilisant map : object.map(MyObject::toSsortingng) (ou toute autre méthode / fonction que vous voulez utiliser).
  2. Obtenez la valeur de chaîne de votre Optional , ou renvoyez une valeur par défaut si Facultatif n’a pas de valeur. Pour cela, vous pouvez utiliser orElse

Combinant ces:

 Ssortingng myValue = object.map(MyObject::toSsortingng).orElse(null); 

Assez tard mais j’ai suivi:

 Ssortingng myValue = object.map(x->x.getValue()).orElse(""); //or null. Whatever you want to return.