Я пытаюсь обернуть голову концепциями Java 8. В контексте ссылок на методы я хотел бы знать, как метод фильтра потока, который принимает объект «Предикативный предикат» в моем случае, также может принимать статический метод в том же классе. Пример ниже.Ссылки на статические методы Java 8
public class App
{
public static void main(String[] args)
{
List<Integer> intList = Arrays.asList(1,2,3,4,5);
intList.stream().filter(e -> e > 3).forEach(System.out::println);
intList.stream().filter(App::filterNosGrt3).forEach(System.out::println);
}
public static boolean filterNosGrt3(Integer no)
{
if(no>3)
return true;
else
return false;
}
}
Что меня смущает в отличие от Lambda, которая является объектом сама по себе, статический метод не имеет объект, присоединенный к нему. Итак, как он удовлетворяет методу фильтра здесь.
Благодаря
Не записывайте 'if (no> 3) return true; else return false; 'Просто напишите' return no> 3; '... – Holger