亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java的lambda表達式的方法引用問題

java的lambda表達式的方法引用問題

拉莫斯之舞 2018-07-08 14:21:07
剛學看這個表達式,感覺這個東西有些地方是個玄學啊,沒搞明白...剛發現的一個問題,有一個TestLambda2的類,還有一個TestLambda4的接口類中的方法:接口中的:參數一樣,類中的是static修飾的,兩個沒有任何聯系,繼承啊實現啊這些,然后:成立了...即使我在弄一個新的接口然后參數一樣,返回類型一樣,然后也沒有任何聯系,依然可以引用,求大神給一個通俗點的教程地址...
查看完整描述

2 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

Lambda表達式的引入是java對函數式編程思想的引入。簡單的來說,方法也可以作為一種變量進行賦值和傳遞。但是因為java本身的面向對象思想,所以以類的形式對函數式編程思想進行實現。

查看完整回答
反對 回復 2018-07-13
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

Java 是面向對象的語言,所以各種語法都無法脫離  而存在,而看問題也要透過現象看到本質:

對于 TestLambda4 lambda4 = TestLambda2::test1 這個方法引用,你可以理解為:

TestLambda4 lambda4 = str -> TestLambda2.test1(str);

而對于 Lambda 表達式,雖然底層實現和匿名內部類有區別,但是在語法功能上,二者是完全一致的,即可以把上面的 Lambda 理解為:

TestLambda4 lambda4 = new TestLambda4() {    
@Override
    public String test111(String s) {        
        return TestLambda2.test1(s);
    }
    
};


查看完整回答
反對 回復 2018-07-13
  • 2 回答
  • 0 關注
  • 119 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號