【应用】Lambda表达式
生活随笔
收集整理的這篇文章主要介紹了
【应用】Lambda表达式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 簡介
- 用法前提和語法
- 作用
- 例子
- 推導lambda表達式(內部類的簡化過程)
- 帶參數的情況以及lambda表達式的簡化:
簡介
- Lambda 表達式,也可稱為閉包,它是推動 Java 8 發布的最重要新特性。
- Lambda 允許把函數作為一個方法的參數(函數作為參數傳遞進方法中)。
用法前提和語法
- 用法前提:
如果一個接口只存在一個方法且是抽象類方法,那這個接口為函數式接口。對于函數式接口,可以使用lambda表達式來創建該接口的對象。
- 語法格式如下:
(parameters) -> expression
或
(parameters) ->{ statements; }
作用
- 可以使代碼變的更加簡潔緊湊。
- 避免匿名內部類定義過多
例子
推導lambda表達式(內部類的簡化過程)
// 推導lambda表達式 public class LambdaDemo {// 3.靜態內部類static class Like2 implements ILike {@Overridepublic void lambda() {System.out.println("I like lambda2");}}public static void main(String[] args) {ILike like = new Like();like.lambda();like = new Like2();like.lambda();// 4.局部內部類class Like3 implements ILike {@Overridepublic void lambda() {System.out.println("I like lambda3");}}like = new Like3();like.lambda();// 5.匿名內部類:沒有類的名稱,必須借助接口或者父類like = new ILike() {@Overridepublic void lambda() {System.out.println("I like lambda4");}};like.lambda();// 6.用lambda簡化like = ()->{System.out.println("I like lambda5");};like.lambda();} }// 1.定義一個函數式接口 interface ILike{void lambda(); }// 2.實現類 class Like implements ILike{@Overridepublic void lambda() {System.out.println("I like lambda");} }帶參數的情況以及lambda表達式的簡化:
public class LambdaDemo2 {public static void main(String[] args) {// 匿名內部類ILove love = new ILove() {@Overridepublic void love(int a,int b) {System.out.println("I love you:" + a);}};// 匿名內部類變成lambda表達式形式love = (int a,int b)->{System.out.println("I love you:" + a);};// 簡化1:去掉參數類型 //(多個參數也能去掉參數類型,要去掉就全去掉)love = (a, b)->{System.out.println("I love you:" + a);};// 簡化2:去掉括號(多個參數的情況不能去掉括號,只有一個參數的情況就可以) // love = a ->{ // System.out.println("I love you:" + a); // };// 簡化3:去掉花括號(只有一行代碼的情況下才能去掉花括號,多行代碼要用代碼塊)love = (a, b) -> System.out.println("I love you:" + a);love.love(520,502);} }interface ILove{void love(int a,int b); }//class Love implements ILove{ // @Override // public void love(int a,int b) { // System.out.println("I love you:"+a); // } //}總結
以上是生活随笔為你收集整理的【应用】Lambda表达式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx(六)-- 配置文件之Gzip
- 下一篇: Matlab颜色RGB值