Rumah > Soal Jawab > teks badan
定义好的函数,不知道该如何使用。
// 不知道怎么引用
BinaryOperator<Long> add = (x, y) -> x + y;
伊谢尔伦2017-04-18 09:20:55
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.
怪我咯2017-04-18 09:20:55
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 objek BinaryOperator<Long>
, yang kemudiannya merupakan objek contoh kelas ini. Cara menggunakannya adalah sama dengan cara menggunakan objek tersebut.