Lambda-Ausdruckskonzept als Argument:
Beispielziel:
Funktionale Schnittstellenstruktur:
Definition der changeStr()-Methode:
Die Methode changeStr() benötigt zwei Parameter:
Ein Parameter vom Typ StringFunc (funktionale Schnittstelle).
Ein zu manipulierender String.
Die Methode wendet die Schnittstellenfunktion auf den String an und gibt das Ergebnis zurück.
Verwendung des Lambda-Ausdrucks:
Beispiel 1: Lambda-Ausdruck, der die Zeichen einer Zeichenfolge umkehrt und sie der Umkehrvariablen zuweist.
Übergibt den Lambda-Ausdruck an changeStr(), um die Zeichenfolge umzukehren.
Beispiel 2: Lambda-Ausdruck, der Leerzeichen durch Bindestriche ersetzt und direkt an changeStr() übergeben wird.
Beispiel 3:Block-Lambda-Ausdruck, der die Groß-/Kleinschreibung von Buchstaben in einer Zeichenfolge umkehrt und auch direkt an changeStr() übergeben wird.
Vollständiges Codebeispiel:
Im Folgenden finden Sie den vollständigen Code, der zeigt, wie Lambda-Ausdrücke an die Methode changeStr() übergeben werden:
interface StringFunc { String func(String str); } class LambdaArgumentDemo { static String changeStr(StringFunc sf, String s) { return sf.func(s); } public static void main(String args[]) { String inStr = "Lambda Expressions Expand Java"; String outStr; System.out.println("Here is input string: " + inStr); // Expressão lambda para inverter a string StringFunc reverse = (str) -> { String result = ""; for (int i = str.length() - 1; i >= 0; i--) result += str.charAt(i); return result; }; // Passando a expressão lambda 'reverse' para o método outStr = changeStr(reverse, inStr); System.out.println("The string reversed: " + outStr); // Expressão lambda para substituir espaços por hífens outStr = changeStr((str) -> str.replace(' ', '-'), inStr); System.out.println("The string with spaces replaced: " + outStr); // Expressão lambda para inverter a caixa das letras outStr = changeStr((str) -> { String result = ""; char ch; for (int i = 0; i < str.length(); i++) { ch = str.charAt(i); if (Character.isUpperCase(ch)) result += Character.toLowerCase(ch); else result += Character.toUpperCase(ch); } return result; }, inStr); System.out.println("The string in reversed case: " + outStr); } }
Erwartete Ausgabe:
Here is input string: Lambda Expressions Expand Java The string reversed: avaJ dnapxE snoisserpxE adbmaL The string with spaces replaced: Lambda-Expressions-Expand-Java The string in reversed case: lAMBDA eXPRESSIONS eXPAND jAVA
Beobachtungen:
Die direkte Übergabe von Lambda-Ausdrücken als Argumente an Methoden erhöht die Flexibilität und Lesbarkeit des Codes.
Der Lambda-Ausdruck, der die Groß-/Kleinschreibung von Buchstaben umkehrt, ist komplexer, kann aber dennoch direkt an die Methode übergeben werden. Im Allgemeinen werden komplexere Lambdas besser Variablen zugewiesen.
Das obige ist der detaillierte Inhalt vonVersuchen Sie dies als Lambda-Ausdruck als Argument. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!