天天看點

如何了解Lambda表達式

Lambda 表達式(lambda expression)是一個匿名函數,Lambda表達式基于數學中的λ演算得名,直接對應于其中的lambda抽象(lambda abstraction),是一個匿名函數,即沒有函數名的函數。Lambda表達式可以表示閉包。

  這裡就展示了Lambda是如何從其他表現形式一步步簡化成為lambda表達式的,有助于對lambda表達式的了解與使用。

//1、先定義一個函數式借接口(就是隻有一個抽象類方法)
interface ILike {
    void Lombda();
}

//2、實作類
class Like implements ILike {
    @Override
    public void Lombda() {
        System.out.println("i like lombda1!");
    }
}

public class Demo1 {
    //3、靜态内部類
    static class Like1 implements ILike {
        @Override
        public void Lombda() {
            System.out.println("i like lambda2!");
        }
    }

    public static void main(String[] args) {
        new Like().Lombda();
        new Like1().Lombda();

        //4、局部内部類
        class Like2 implements ILike {
            @Override
            public void Lombda() {
                System.out.println("i like lambda3!");
            }
        }
        new Like2().Lombda();

        //5、匿名内部類,沒有類的名稱,隻能靠接口或者父類實作
        ILike i = new ILike() {
            @Override
            public void Lombda() {
                System.out.println("i liek lambda4!");
            }
        };
        i.Lombda();

        //6、Lambda
        i = () -> {
            System.out.println("i like lambda5!");
        };
        i.Lombda();
    }
}