通俗理解Java中的Lambda表达式
Lambda
Lambda表達式支持將代碼塊作為方法參數, 允許使用更為簡潔的方式實現抽象類或接口的抽象方法, 而不再是通過匿名內部類的方式, 它具有對某一方法重寫或實現的功能;
接下來通過一個簡單的例子了解一下
Lambda表達式只有一條語句,就可以省略大括號, 如上可寫為: LED.eat( ()->System.out.println(“nice2”); );
上述代碼中"->“前面的括號里的對應的就是需要重寫接口方法的形參(即 taste() 括號中的 ), 后面”{}"中的對應的就是接口或抽象類的實現方法體, 若表達式需要返回值, return語句可以省略, 其實表達式在重寫完抽象類/接口方法后返回重寫后的匿名對象, 即使你沒寫return語句
Lambda只能為函數是接口創建對象 ( Lambda表達式最大的作用就是簡化匿名表達式new …的操作 )
在Lambda表達式最前面可添加強制類型轉換, 通過Lambda表達式返回匿名對象, 可對匿名對象向上/向下轉型實現多態效果
Lambda的引用類方法
由于Lambda返回的是一個匿名對象, 其效果與匿名內部類的效果相同, 所以可對返回值進行引用操作
如上代碼可進行改寫:
引用特定對象的實例方法
就是在"->"后面的重寫的代碼塊中采用其他對象調用特定的方法
引用某類對象的實例方法以及引用構造方法: 不做闡述, 與上面操作大致相同, 就是實現抽象類/接口的抽象方法(在"->"后面做相應的操作)
通過上述的操作發現Lambda表達式與匿名內部類具有一定的聯系:
他們二者的區別是:
最后再重復一遍
Lambda式子中,"->“前面的是需要實現的抽象方法的形參,沒有形參就”()"為空處理,后面的是實現抽象方法的方法體
總結
以上是生活随笔為你收集整理的通俗理解Java中的Lambda表达式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何把一个网页生成一个快捷方式在桌面?_
- 下一篇: java技术_2020年最流行的Java