是否有类似 Optional 但适用于非可选的类?
将函数声明为映射值并使用它们(如果存在)非常方便。
在有几个强制对象和几个可选对象的情况下,我发现自己也把其他对象包装在 Optional.of(强制性对象)中,这样我就可以在它们上使用相同的表达式,而不必向后写。
Food vegetables = Food.someVegetables();
Optional<Food> condiment = Food.someCondiment();
Optional<Food> spices = Food.someSpices();
condiment.map(prepare).ifPresent(putOnPlate);
spices.map(prepare).ifPresent(putOnPlate);
但是我不喜欢这个代码:
putOnPlate.accept(prepare.apply(vegetables));
所以我把它包起来:
Optional.of(vegetables).map(prepare).ifPresent(putOnPlate);
但这是错误的,因为蔬菜(在这个例子中)实际上不是可选的。它们非常重要,我只是给每个人的印象是它们是可选的。
所以我的问题是:Java中是否有一些类像java.util.Mandatory,所以我可以写:
Mandatory.of(vegetables).map(prepare).definitelyPresentSo(putOnPlate);