Перемещено из комментария к ответу
Конечно, как говорит Аомин, для этого можно использовать Objects::nonNull
.
Но для кода, который не имеетдоступная функция, я думаю, полезно знать, что вы можете использовать много вещей в лямбда-выражениях;Вы можете использовать блоки кода или просто написать простой метод, следуя контракту лямбды и передавая ссылку на этот метод.
class Test {
public static void main(String[] args){
Stream<Object> stream = ...;
// lambda from code block
stream.filter(bean -> {return bean != null;});
Predicate<Object> p1 = o -> {return o != null;};
// which resolves to the below
Predicate<Object> p2 = new Predicate<>() {
@Override public boolean test(Object o) {
return o != null;
}
};
// or pass your own method that can resolve to the correct functional class
stream.filter(Test::myPredicateTest);
}
// meets the contract of a Predicate<Object>.test(Object o) returning boolean
public static boolean myPredicateTest(Object o) {
return o != null;
}
}