Lambda表達式是JDK8新增的一種語法格式
1.作用
簡化匿名內部類的代碼寫法
Lambad用法前提:只能簡化函數式接口(一般加有@Funcationallnterface)(有且僅有一個抽象方法@)的匿名內部類
匿名內部類:(本質是對象名的子類對象)? ? :?
? ? ? ? ? ? ? ? ? 對象名 a = new 對象名(){ ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?@Override ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?public void 方法名(){ ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 內容? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }; ? ? ? ? ?
2.用法規則:
Lambda表達式的省略寫法(進一步簡化Lambda表達式的寫法)
1.參數類型可以省略不寫
2.如果只有一個參數,參數類型可以省略,同時()也可以省略。
3.如果Lambda表達式中的方法體代碼只有一行代碼,可以省略大括號不寫,同時要省略分號!此時,如果這行代碼是return語句,也必須去掉return不寫
格式:(被重寫方法的形參列表)->{
? ? ? ? ? ? ?被重寫方法的方法體代碼
? ? ? ? ? ? }
最終簡化:?
對象名 a =() ->{
? ? return? 內容
});
最終簡化
一個參數下:(對象名,o1?->內容));
兩個參數下:(對象名,(o1,o2) ->內容));