Rumah >Java >javaTutorial >Cuba Ini sebagai ungkapan lambda sebagai hujah
Konsep Ungkapan Lambda sebagai Hujah:
Contoh Objektif:
Struktur Antara Muka Fungsian:
Takrifan kaedah changeStr():
Kaedah changeStr() mengambil dua parameter:
Parameter jenis StringFunc (antara muka berfungsi).
Rentetan untuk dimanipulasi.
Kaedah menggunakan fungsi antara muka pada String dan mengembalikan hasilnya.
Penggunaan Ungkapan Lambda:
Contoh 1: Ungkapan Lambda yang membalikkan aksara rentetan dan menetapkannya kepada pemboleh ubah terbalik.
Melalukan ungkapan lambda kepada changeStr() untuk membalikkan rentetan.
Contoh 2: Ungkapan Lambda yang menggantikan ruang dengan sempang dan dihantar terus ke changeStr().
Contoh 3: Sekat ungkapan lambda yang membalikkan huruf besar dalam rentetan dan juga dihantar terus ke changeStr().
Contoh Kod Penuh:
Berikut ialah kod lengkap yang menunjukkan cara untuk menghantar ungkapan lambda kepada kaedah changeStr():
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); } }
Keluaran Jangkaan:
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
Pemerhatian:
Menghantar ungkapan lambda secara langsung sebagai argumen kepada kaedah meningkatkan fleksibiliti dan kebolehbacaan kod.
Ungkapan lambda yang membalikkan kes huruf adalah lebih kompleks, tetapi masih boleh dihantar terus ke dalam kaedah. Secara umum, lambda yang lebih kompleks lebih baik diberikan kepada pembolehubah.
Atas ialah kandungan terperinci Cuba Ini sebagai ungkapan lambda sebagai hujah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!