【发布时间】:2017-11-11 12:22:42
【问题描述】:
我想知道是否有办法在不使用 .orElse() 的情况下摆脱 findFirst().get() 的警告,因为我知道 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 是如何处理的吗?
【问题讨论】:
-
我认为有一个选项可以禁用 IntelliJ 所做的某些检查。尝试在设置中寻找它
-
您可以毫无问题地流式传输一个空列表,但是如果您尝试在一个空列表中获取 1s 元素,您将得到一个 NoSuchElementException
-
我知道有可能禁用该警告,但如果我禁用,即使我需要该通知,它也不会再通知我。
-
使用
myList.get(0)...
标签: java intellij-idea java-8 java-stream optional