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:
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). 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.