Ich untersuchte die Variation des Schreibstils für den in Java8 eingeführten Lambda-Ausdruck. Ich werde es in Tabellenform behandeln, damit Sie leicht darauf zugreifen können, wenn Sie sich verlaufen.
No. | Notation | Erläuterung |
---|---|---|
1 | () -> System.out.println("foo") | Keine Argumente |
2 | (n) -> System.out.println(n) | Mit Argument(In Klammern setzen) |
3 | (int n) -> System.out.println(n) | Mit Argument(In Klammern + Typenspezifikation einschließen) |
4 | n -> System.out.println(n) | Mit Argument(Nicht in Klammern setzen) * Klammern können nur weggelassen werden, wenn es ein Argument gibt |
5 | (m, n) -> m+n | Mit Argument(Mehrere) |
6 | (int m, int n) -> m+n | Mit Argument(Mehrere + Typ angegeben) |
7 | (n) -> { return n * 2;} | Anweisungstyp Lambda-Ausdruck |
Der obige Beispielcode.
// No.1 kein Argument
Runnable lambda1 = () -> System.out.println("foo");
// No.2 mit Argumenten(In Klammern setzen)
IntConsumer lambda2 = (n) -> System.out.println(n);
// No.3 mit Argumenten(In Klammern + Typenspezifikation einschließen)
IntConsumer lambda3 = (int n) -> System.out.println(n);
// No.4 mit Argumenten(Nicht in Klammern setzen)* Klammern können nur weggelassen werden, wenn es ein Argument gibt
IntConsumer lambda4 = n -> System.out.println(n);
// No.5 mit Argumenten(Mehrere)
IntBinaryOperator lambda5 = (m, n) -> m+n;
// No.6 mit Argumenten(Mehrere + Typ angegeben)
IntBinaryOperator lambda6 = (int m, int n) -> m+n;
// No.7 Anweisungstyp Lambda-Ausdruck
IntUnaryOperator lambda7 = (n) -> { return n * 2;};