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();
如果供应商可以做同样的事情,为什么还要引入新的东西呢?还是只有其中一个?
答案 0 :(得分:0)
该流可能为空,在这种情况下,无法从供应商那里获取任何有意义的价值。 这就是为什么您选择“可选”而不是“供应商”的原因。
《任择议定书》的基本约定是可能存在或可能不存在价值。
供应商的基本合同是可以按需检索值。 表示供应商没有可用价值的唯一方法是抛出异常,这是我们作为供应商的用户可以并且肯定要避免的事情。