2017-02-23 1 views

Antwort

5

Weil die eine Methode Referenz ist, ist die Verwendung ein wenig anders:

Consumer<String> c = System.out::println; 

Das Argument, dass der Verbraucher nimmt (s) wird die println Methode übergeben wird, nach wie vor.

here ist Oracle Tutorial zu diesem Thema.

5

Consumer con = (s) -> System.out::println;

Hier versucht man, die System.out.println() mit aufrufen, was wir nennen Methode Referenz in Java 8. Wenn Sie sind ein Verfahren, bei Lambda-Ausdruck verweisen seine von so sein muss,

Consumer con = System.out::println;

Sie nicht wirklich brauchen, die sprintln Methode aufzurufen. Method Referenz wird dafür sorgen. Dieser Operator :: bedeutet, dass Sie die Methode println mit einem Parameter aufrufen und den Namen nicht angeben.

Aber wenn Sie das tun,

Consumer con2 = (s) -> {System.out.println(s);};

Sie den Lambda-Ausdruck zu sagen ausdrücklich den Inhalt von s println der technisch völlig in Ordnung ist, so dass es keine Kompilierung-Fehler auftreten wird.

Verwandte Themen