public class Main {
private long t, u;
private Long test(BinaryOperator<Long> b) {
return b.apply(t, u);
}
public static void main(String[] args) {
Main m = new Main();
m.t = 1; m.u = 2;
BinaryOperator<Long> b = (x, y) -> x + y;
System.out.println(m.test(b));
}
}
Tiada guna untuk menariknya keluar sahaja Lambda hanya mentakrifkan kaedah operasi data, iaitu, ia mentakrifkan fungsi. Khususnya di mana untuk menggunakannya, anda perlu menentukan kaedah dengan parameter ialah ungkapan lambda (antara muka berfungsi), dan kemudian panggil operasi sebenar lambda (yang berfungsi dalam definisi antara muka) di dalam kaedah, seperti terima.
Lambda takrifkan bukan fungsi, ia hanyalah singkatan untuk kelas tanpa nama dan apa yang dijananya ialah objek. Sama seperti dalam contoh anda, ia menghasilkan objek BinaryOperator<Long>, yang kemudiannya merupakan objek contoh kelas ini. Cara menggunakannya adalah sama dengan cara menggunakan objek tersebut.
Tiada guna untuk menariknya keluar sahaja Lambda hanya mentakrifkan kaedah operasi data, iaitu, ia mentakrifkan fungsi. Khususnya di mana untuk menggunakannya, anda perlu menentukan kaedah dengan parameter ialah ungkapan lambda (antara muka berfungsi), dan kemudian panggil operasi sebenar lambda (yang berfungsi dalam definisi antara muka) di dalam kaedah, seperti terima.
Apa yang
Lambda
takrifkan bukan fungsi, ia hanyalah singkatan untuk kelas tanpa nama dan apa yang dijananya ialah objek. Sama seperti dalam contoh anda, ia menghasilkan objekBinaryOperator<Long>
, yang kemudiannya merupakan objek contoh kelas ini. Cara menggunakannya adalah sama dengan cara menggunakan objek tersebut.