Option <整数> vs供应商<整数>

时间:2019-11-01 12:07:29

标签: java java-8 optional

Q)可选功能接口有什么要求?

我确实知道Optional的需要是避免空检查..但仍然需要进行.isPresent()检查??

2)我们是否需要使用Supplier来完成相同的事情,并且在需要该值时在实例上执行.get()?

List<Integer> intList = Arrays.asList(1,2,4);
currently--> Optional<Integer> opt =intList.stream().reduce((a,b)->a*b);
                    int result =opt.get();


suggestion--> Supplier<Integer> sup=intList.stream().reduce((a,b)->a*b);
               int result =sup.get();

如果供应商可以做同样的事情,为什么还要引入新的东西呢?还是只有其中一个?

1 个答案:

答案 0 :(得分:0)

该流可能为空,在这种情况下,无法从供应商那里获取任何有意义的价值。 这就是为什么您选择“可选”而不是“供应商”的原因。

《任择议定书》的基本约定是可能存在或可能不存在价值。

供应商的基本合同是可以按需检索值。 表示供应商没有可用价值的唯一方法是抛出异常,这是我们作为供应商的用户可以并且肯定要避免的事情。