为了避免打电话get()
这可能会引发异常:
if (a.isPresent())
list.add(a.get());
我可以将此表达式替换为:
a.ifPresent(list::add);
但是如果我需要执行更大的表达式,例如:
if (a.isPresent() && b && c)
list.add(a.get());
是否仍然可以使用 lambda 形式来减轻对get()
?
我的用例是避免get()
完全在可能的情况下防止遗漏可能的未经检查的异常。
我的假设是你必须治疗其他人boolean
是分开的,但我可能是错的。
if (b && c) {
a.ifPresent(list::add);
}
实际上,一种奇怪的解决方案可能是:
a.filter(o -> b && c).ifPresent(list::add);
NOTE
- 请务必查看 Shinjw 的解决方案here https://stackoverflow.com/a/46782957/7294647第三个例子!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)