java8中的lambda定义的函数该如何引用
PHP中文网
PHP中文网 2017-04-18 09:18:55
0
2
328

定义好的函数,不知道该如何使用。

// 不知道怎么引用
BinaryOperator<Long> add = (x, y) -> x + y;
PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(2)
伊谢尔伦
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.

刘奇

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan