Я продолжаю получать 'java.util.NoSuchElementException: значение отсутствует' при выполнении фильтра findFirst.
Я не могу сильно изменить код, так как он сломает другую часть кода, и мы не хотим писать логику метода внутри фильтра.
Код дайте ниже.
--- Я получаю ошибку ниже при вызове метода
Ошибка:
java.util.NoSuchElementException: No value present
at java.util.Optional.get(Optional.java:135)
Ошибка в том, что значение равно нулю для ".filter (x -> x> 5)
.findFirst () "
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 10, 3, 7, 5);
int a = list.stream()
// .peek(num -> System.out.println("will filter " + num))
.filter(x -> x== null)
.map( t -> {
System.out.println("hello");
return 0;
})
.filter(x -> x > 5)
.findFirst()
.get();
System.out.println(a);
Здесь list.stream () выдаст поток, который будет использоваться .filter (x -> x == null).
Теперь в этом сценарии x не является нулевым, поэтому, когда дело доходит до .filter (x -> x> 5), он дает нулевое значение, потому что потока там нет.
Отсюда и исключение.
Мне нужна помощь в какой-то альтернативе для этого.