Hier finden Sie eine Zusammenfassung der Abkürzung von Lambda-Ausdrücken. Es wird in Prüfungen wie Java Silver gefragt, also hoffe ich, dass es den Prüflingen hilft. Abschließend werde ich zusammenfassen, wie man sich erinnert.
Wenn Sie die Lambda-Formel überhaupt nicht verstehen, klicken Sie bitte hier. Grundlegendes zu Java 8 Lambda-Ausdrücken
Erstens die Grundform des Lambda-Typs.
Grundform
Predicate<String> javaChecker = (String s) -> { return s.equals("Java"); };
Mal sehen, was hier weggelassen werden kann.
Erstens ist der Argumenttyp optional.
Predicate<String> javaChecker = (s) -> { return s.equals("Java"); };
Wenn jedoch mehrere Argumente vorhanden sind, kann nicht nur eines weggelassen werden.
//Kompilierungsfehler
BiFunction<Integer, Integer, Integer> adder = (a, Integer b) -> { return a + b; };
Das Argument () kann auch weggelassen werden.
Predicate<String> javaChecker = s -> { return s.equals("Java"); };
Es gibt jedoch zwei Bedingungen. Wenn Sie einen Typ angeben, kann dieser zunächst nicht weggelassen werden.
//Kompilierungsfehler
Predicate<String> javaChecker = String s -> { return s.equals("Java"); };
Zweitens kann es nicht weggelassen werden, selbst wenn es mehrere Argumente gibt.
//Kompilierungsfehler
BiFunction<Integer, Integer, Integer> adder = a, b -> { return a + b; };
Ich denke, es ist gut daran zu denken, dass () nur weggelassen werden kann, wenn das Argument ein Wort ist.
Die Methode {} kann auch weggelassen werden.
Consumer<String> buyer = goods -> System.out.println(goods + "ich kaufte");
Hier gibt es auch Bedingungen. Erstens kann es nicht weggelassen werden, wenn zwei oder mehr Sätze vorhanden sind.
//Kompilierungsfehler
Consumer<String> buyer = goods -> String message = "ICH," + goods;
System.out.println(message + "ich kaufte");
Als nächstes schreiben Sie return und es kann nicht weggelassen werden.
//Kompilierungsfehler
Predicate<String> javaChecker = s -> return s.equals("Java");
Wenn Sie jedoch die Rückgabe weglassen, kann sie normal ausgeführt werden.
Predicate<String> javaChecker = s -> s.equals("Java");
Denken Sie daran, dass {} nur weggelassen werden kann, wenn der Prozess eine Anweisung ist. Wenn ein Rückgabewert vorhanden ist, kann die Rückgabe als Satz weggelassen werden.
return Wie oben erwähnt, kann die Rückgabe weggelassen werden, sie kann jedoch nicht weggelassen werden, indem das {} der Methode belassen wird.
//Kompilierungsfehler
Predicate<String> javaChecker = s ->{ s.equals("Java"); };
Auch wenn Sie die Rückgabe weglassen möchten, wird {} weggelassen.
Die Zusammenfassung ist wie folgt.
Teil weggelassen | Bedingungen |
---|---|
Argumenttyp | 全Argumenttypを省略すること |
Vom Argument() | Nur für ein Wort |
Von der Methode{} | Nur für eine Aussage Wenn es einen Rückgabewert gibt, setzen Sie ihn ohne Auslassung |
return | Von der Methode{}Auslassen und einstellen |
Recommended Posts