Java 匿名內部類 Lambda表達式

Lambda表達式

jdk1.8 新增Lambda表達式
作用: 簡化匿名內部類的
使用前提: 函數式接口
函數式接口: 只有一個必須被重寫的抽象方法的接口
強制檢測是否爲函數式接口:
註解@FunctionalInterface

@FunctionalInterface
interface Smoke{
	String smoking(int a);
}

語法:
() -> {}
():匹配要重寫的抽象方法的參數列表
->:lambda符號 箭頭符號 具有上下文推倒的作用
{}:匹配要重寫的抽象方法的方法體

例子:

//匿名內部類
 Smoke ss = new Smoke() {
@Override public void smoking()
	 { 
	 System.out.println("00000"); 
	 }
 };
		 

lambda 第一種形式

Smoke s = ()->{
			System.out.println("11111");
			System.out.println("11111");
		};

lambda 第二種形式

方法體中如果方法體語句只有一句,方法體前後的{}可以省略


Smoke s = ()->System.out.println("11111");


lambda 第三種形式

如果有參數,參數的數據類型可以省略

Smoke s = (a, b)->System.out.println("11111"+a+b);

lambda 第四種形式

如果有參數只有一個,前後的()可以省略

Smoke s = a->System.out.println("11111"+a);

lambda 第五種形式

如果語句體還有一句,並且3還是return語句,return關鍵字 以及前後{}可以一起省略

Smoke s = a-> "返回"+a;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章