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