java Lambda表达式

Lambda表达式

1.形成的过程

定义函数式接口
定义实现类
静态内部类
局部内部类
匿名内部类
Lambda表达式

2.要点

1.使用lambda表达式的前提:
	方法所在的接口必须是函数式接口(Functional Interface)
2.函数式接口的定义:
	只包含唯一一个抽象方法的接口
	Runable接口就是典型的函数式接口
3.对于函数式接口,我们可以通过lambda表达式来创建该接口的对象

3.函数式接口(Functional Interface)

@FunctionalInterface
public interface Runnable {
    public abstract void run();
}

4.java代码详解Lambda表达式的简化过程

/*
    Lambda表达式简化过程
 */
public class LambdaDemo {
    public static void main(String[] args) {

        //1的调用(定义实现类)
        Runnable studyLambda = new StudyLambda_outClass();//定义一个接口对象,new一个实现类
        new Thread(studyLambda).start();

        //2的调用(静态内部类)
        studyLambda = new StudyLambda_staticInClass();
        new Thread(studyLambda).start();

        //3.局部内部类
        class StudyLambda_partClass implements Runnable{
            @Override
            public void run() {
                System.out.println("zg is studying lambda3");
            }
        }
        //3的调用(局部内部类)
        studyLambda = new StudyLambda_partClass();
        new Thread(studyLambda).start();


        //4.匿名内部类,不定义类名,直接new函数式接口
        studyLambda = new Runnable(){
            @Override
            public void run() {
                System.out.println("zg is studying lambda4");
            }
        };
        new Thread(studyLambda).start();


        //5.lambda表达式,在匿名内部类的基础上简化代码
        //去掉new接口名,方法名,保留方法()和方法体,用->合并
        //如果接口方法有参数,就写在()里
        studyLambda = ()->{
            System.out.println("zg is studying lambda5");
        };
        new Thread(studyLambda).start();

    }

    //2.静态内部类
    static class StudyLambda_staticInClass implements Runnable{
        @Override
        public void run() {
            System.out.println("zg is studying lambda2");
        }
    }

}

//Runnable是一个函数式接口
//1.定义实现类
class StudyLambda_outClass implements Runnable{
    @Override
    public void run() {
        System.out.println("zg is studying lambda1");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值