Option vs Supplier

问题描述 投票:-2回答:1

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();

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

java java-8 optional
1个回答
0
投票

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

可选方案的基本约定是可能存在或可能不存在值。

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

© www.soinside.com 2019 - 2024. All rights reserved.