有關 Session 的那些事兒
阿新 • • 發佈:2020-07-21
能夠用lambda表示式進行簡化,必須是函式式介面
函式式介面:在一個接口裡面,有且僅有一個抽象方法,可有很多非抽象方法
//1.定義一個函式式介面 interface ILike{ void like(); }
從複雜到簡化到lambda表示式的過程:
package thread; public class TestLambda { //3.靜態內部類 static class Like3 implements ILike{ @Override public void like() { System.out.println("I like lambda 靜態內部類"); } }public static void main(String[] args) { Like2 like2 = new Like2(); like2.like(); Like3 like3 = new Like3(); like3.like(); // 4.區域性內部類 class Like4 implements ILike{ @Override public void like() { System.out.println("I like lambda 區域性內部類"); } } Like4 like4 = new Like4(); like4.like(); // 5.匿名內部類,沒有類的名稱,必須藉助介面或父類 ILike like5 = new ILike() { @Override public void like() { System.out.println("I like lambda 匿名內部類"); } }; like5.like();// 6.對匿名內部類進行簡化,用lambda簡化,只寫引數列表和{}裡面的方法體 ILike like6 = ()-> {System.out.println("I Like lambda lambda簡化");}; like6.like(); } } //1.定義一個函式式介面 interface ILike{ void like(); } //2.外部實現類 class Like2 implements ILike{ @Override public void like() { System.out.println("I like Lambda 外部實現類"); } }
lambda表示式的優化:
最標準的lambda表示式:
public class TestLambda03 { public static void main(String[] args) { Help help = (int a,double b,boolean c)->{ System.out.println(a+" "+b+" "+c); System.out.println("好開心"); }; help.help(1,1.3,true); } } interface Help{ void help(int a,double b,boolean c); }
可以省略{}時:
public class TestLambda02 { public static void main(String[] args) { // 當{}方法體裡面只有一行程式碼時,lambda表示式可省略{}; // 當{}方法有多行程式碼時,必須要寫{} Help help = (int a)-> System.out.println("幫助人數為"+a); /* Help help = (int a)->{ System.out.println("幫助人數為"+a); System.out.println("好開心"); };*/ help.help(1); } } interface Help{ void help(int a); }
()和引數型別可省略的情況
public class TestLambda03 { public static void main(String[] args) { // 引數型別要省略都省略,要不省略都不省略 // 只有一個引數時才可省略()如 當只有一個引數時 // Help help = a->{ // System.out.println(a+" "+b+" "+c); // System.out.println("好開心"); // }; Help help = ( a, b, c)->{ System.out.println(a+" "+b+" "+c); System.out.println("好開心"); }; help.help(1,1.3,true); } } interface Help{ void help(int a,double b,boolean c); }