Lambda表达式

Lambda表达式:

函数式接口的定义:

任何接口,如果只包含唯一一个抽象的方法,那么他就是一个函数式接口。

对于函数式接口,我们可以通过lambda表达式来创建该接口的对象。

函数式接口只有一个方法,函数式接口只有一个方法,函数式接口只有一个方法,函数式接口只有一个方法,函数式接口只有一个方法,函数式接口只有一个方法。。。。。

重要的话要多说几遍。

package com.lipu.lambda;
/*
* 推导lambda表达式
* */
public class TestLambda1 {
    //2.静态内部类
   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的时候定义了其为ILike
        like.lambda();

        like =new Like2();
        like.lambda();



        //3.局部类
        class Like3 implements ILike{
            @Override
            public void lambda(){
                System.out.println("i like lambda3");
            }
        }
        like =new Like3();
        like.lambda();

        //用lambda简化类似js中的箭头函数
        like=()->{
            System.out.println("这是箭头函数");
        };
        like.lambda();


    }
}
//1.定义一个接口
interface ILike{
    void  lambda();
}

class Like implements ILike{
    @Override
    public void lambda(){
        System.out.println("i like lambda");
    }
}

注意:此处使用的为lambda(),其实可以为任意的名称方法。

再举一个例子:

package com.lipu.lambda;

public class TestLambda2 {
    public static void main(String[] args) {
        ILove love=(int a)->{ //类似方法重写  使用love前定义了为ILove
            System.out.println("这是箭头函数"+a);
        };
        love.love(1);
    }

}
interface ILove{
    void  love(int a);
}
原文地址:https://www.cnblogs.com/lipu12281/p/12193970.html