Il est pratique de déclarer des fonctions pour mapper les valeurs et les consommer si elles sont présentes.
Dans le cas où vous avez plusieurs objets obligatoires, et plusieurs Optionals, je me retrouve à envelopper les autres dans Optional.of(mandatoryObject) également afin de pouvoir utiliser les mêmes expressions sur eux sans tout écrire à l'envers.
Food vegetables = Food.someVegetables();
Optional<Food> condiment = Food.someCondiment();
Optional<Food> spices = Food.someSpices();
condiment.map(prepare).ifPresent(putOnPlate);
spices.map(prepare).ifPresent(putOnPlate);
Mais alors je n'aime pas ce code :
putOnPlate.accept(prepare.apply(vegetables));
alors je l'emballe :
Optional.of(vegetables).map(prepare).ifPresent(putOnPlate);
Mais c'est tout simplement faux, car les légumes (dans cet exemple) ne sont en fait pas facultatifs. Ils sont très importants et je viens de donner à tout le monde l'impression qu'ils sont facultatifs.
Ma question est donc la suivante : Existe-t-il une classe en java comme java.util.Mandatory pour que je puisse écrire :
Mandatory.of(vegetables).map(prepare).definitelyPresentSo(putOnPlate);