Ich versuche, mich mit Java 8-Konzepten zu beschäftigen. Im Zusammenhang mit Methodenreferenzen würde ich gerne wissen, wie die Stream-Filter-Methode, die ein "Prädikat-Prädikat" -Objekt in meinem Fall akzeptiert, auch eine statische Methode in derselben Klasse akzeptieren kann. Beispiel unten.Statische Methodenreferenzen 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;
}
}
Was mich verwirrt, ist im Gegensatz zu den Lambda, die ein Objekt in sich selbst ist, die statische Methode kein Objekt hat daran befestigt. Wie also erfüllt es die Filtermethode hier?
Dank
Schreiben Sie nicht 'if (no> 3) return true; else return false; 'Einfach schreiben' return no> 3; '... – Holger