1. 程式人生 > 實用技巧 >不帶,以及帶引數,帶返回值的Lambda表示式

不帶,以及帶引數,帶返回值的Lambda表示式

無引數無返回值

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);
}