Lambda表达式

概述

Lambda 表达式(lambda expression)

是一个匿名函数,它是matlab中定义的一种函数形式,他的生成方式最简捷。

lambda 抽象(lambda abstraction)

是一个匿名函数,即没有函数名的函数。

使用方法

条件:接口中只有一个方法

like = ()-> System.out.println("I like lambda5");

实例

实现类到lambda的顺序

/**
 * lambda 表达式
 */
public class Lambda01 {
    //3.静态内部类
    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();
        //4.局部内部类
        class Like3 implements ILike{
            @Override
            public void lambda() {
                System.out.println("I like lambda3");
            }
        }
        like = new Like3();
        like.lambda();
        //5.匿名局部内部类
        like = new ILike() {
            @Override
            public void lambda() {
                System.out.println("I like lambda4");
            }
        };
        like.lambda();
        //6.lambda表达式
        like = ()-> System.out.println("I like lambda5");
        like.lambda();
    }
}
//1.接口
interface ILike{
    void lambda();
}
//2.实现类
class Like implements ILike{
    @Override
    public void lambda() {
        System.out.println("I like lambda");
    }
}

三种写法

public class Lambda02 {
    public static void main(String[] args) {
        ILove l= null;
        l = (int a)-> { System.out.println("i love is "+a); };
        l.sayLove(1);
        l = (a)-> { System.out.println("i love is "+a); };
        l.sayLove(2);
        l = a -> { System.out.println("i love is "+a); };
        l.sayLove(3);
    }
}
interface ILove{ void sayLove(int a);}

一句话

简化只有一个方法的接口的创建方式

原文地址:https://www.cnblogs.com/gbhh/p/13768076.html