我想知道是否有办法消除 findFirst().get()
的警告而不使用 .orElse()
当我 100% 知道每次都有结果时,所以我永远不会得到 NoSuchElementException
。
例如,让我们看下面的代码:
List<String> myList = new ArrayList<>();
myList.add("Test");
myList.add("Example");
myList.add("Sth");
String fisrstString = myList.stream().findFirst().get(); // here I surely get "Test"
我不知道其他 IDE 如何处理这个问题,但 IntelliJ 将其视为警告
‘Optional.get()’ 没有 ‘isPresent()’
我想它可能不知道你什么时候能得到 NoSuchElementException
那里什么时候没有,或者我不知道为什么。我知道有一些方法可以解决这个警告( isPresent()
检查, .orElse(something)
)但是代码无用,所以我不想使用这些解决方案,因为它们是不必要的。
您知道我能做什么,或者解释一下 IDE 是如何处理的吗?
原文由 Sunflame 发布,翻译遵循 CC BY-SA 4.0 许可协议
好吧,对我来说,最好的方法是使用函数式编程并继续使用可选的。因此,例如,如果您需要将此字符串传递给某些服务,您可以这样做:
但这看起来不太好。相反,您可以利用函数式编程的优点,并执行以下操作: