不帶,以及帶引數,帶返回值的Lambda表示式
阿新 • • 發佈:2020-11-29
無引數無返回值
package com.wcy; //lambda推導必須存在型別 public class Lambda { //靜態內部類 static class Like2 implements ILike{ @Override public 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(); //區域性內部類 class Like3 implements ILike{ public void lambda() { System.out.println("I like lambda3"); } } like = new Like3(); like.lambda(); //匿名內部類 like = new ILike() {public void lambda() { System.out.println("I like lambda4"); } }; like.lambda(); //lambda like = ()->{ System.out.println("I like lambda5"); }; like.lambda(); } } interface ILike{ void lambda(); } //外部類class Like implements ILike{ @Override public void lambda() { System.out.println("I like lambda1"); } }
帶引數
package com.wcy; public class Lambda2{ public static void main(String[] args) { ILove love=(int a)->{ //可以省略int,自定跟介面匹配。只有一個引數的時候()也可以省略,如果只有一行程式碼,{ }也可以省略! System.out.println("i love lambda "+a); }; love.lambda(100); love=(a)->{ //省略int 自定跟介面匹配 System.out.println("i love lambda "+a); }; love.lambda(99); love=a->{ //只有一個引數的時候 ()也可以省略 System.out.println("i love lambda "+a); }; love.lambda(98); } } interface ILove{ void lambda(int a); }
帶引數的帶返回值的
package com.wcy; public class Lambda3 { public static void main(String[] args) { ILove love=(int a,int b)->{ System.out.println("i love lambda "+(a+b)); return a+b; }; System.out.println(love.lambda(100,200)); } } interface ILove{ int lambda(int a,int b); }
帶引數的帶返回值的
package com.wcy; public class Lambda3 { public static void main(String[] args) { ILove love=(int a,int b)->{ System.out.println("i love lambda "+(a+b)); return a+b; }; love.lambda(12, 16); love=(a,b)->{ System.out.println("i love lambda "+(a+b)); return a+b; }; love.lambda(12, 10); love=(a,b)->{ return a+b; }; System.out.println(love.lambda(12, 8)); love=(a,b)->a+b; System.out.println(love.lambda(12, 6)); } } interface ILove{ int lambda(int a,int b); }