Lambda 表达式简单演化(原始的方法调用,一步步简化成 lambda 表达式的过程)

文章详细介绍了Lambda表达式的进化过程,从原始接口方法调用开始,逐步优化为静态内部类、局部内部类、匿名内部类,最终简化为带参数的Lambda表达式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Lambda 表达式简单演化


函数式接口的定义:

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

在这里插入图片描述

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


原始的方法调用,一步步简化成 lambda 表达式的过程


原始接口方法没有参数的演示—示例 1

在这里插入图片描述


具体代码
//原始的方法调用,一步步简化成 lambda 表达式的过程
public class TestLambda01 {

    //4、第一次优化-->静态内部类(把实现类放到静态内部类里面即可)=========类名是Like2
    static class Like2 implements ILike{
        @Override
        public void studyLambda() {
            System.err.println("复习lambda-----静态内部类---02");
        }
    }



    
    public static void main(String[] args) {
    	//3、最原始的调用一个实现类的方法========================
        Like like = new Like();
        like.studyLambda();



        //4、-----测试----------========================
        Like2 like2 = new Like2();
        like2.studyLambda();



        //5、第二次优化-----> 局部内部类=====================类名是Like3
        class Like3 implements ILike{
            @Override
            public void studyLambda() {
                System.err.println("复习lambda-----局部内部类---03");
            }
        }

        Like3 like3 = new Like3();
        like3.studyLambda();
        

        //6、第三次优化--->匿名内部类,没有类的名称,必须借助接口或者父类-----没有类名=======
        //iLike 不是类名,而是一个对象的引用变量名
        ILike iLike = new ILike() {
            @Override
            public void studyLambda() {
                System.err.println("复习lambda-----匿名内部类---04");
            }
        };

        iLike.studyLambda();



        //7、第四次优化---> 用 Lambda 简化
        iLike = () -> {
            System.err.println("复习lambda-----Lambda 简化版本---05");
        };

        iLike.studyLambda();


    }
}

//1、定义一个函数式接口
interface ILike {
    void studyLambda();
}

//2、实现类
class Like implements ILike{
    @Override
    public void studyLambda() {
        System.err.println("复习lambda-----原始实现类里面的方法---01");
    }
}

原始接口方法携带参数的演示—示例 2

和上面的演示一样,只不过这次方法加了参数而已

在这里插入图片描述


具体方法

//原始的方法调用,一步步简化成 lambda 表达式的过程
public class TestLambda02 {

    //1、第一次优化-->静态内部类(把实现类放到静态内部类里面即可)=========类名是 Love01
    static class Love01 implements ILove {
        //实现接口方法
        @Override
        public void love(int a,int b) {
            System.err.println("实现接口的love方法------>" + a + " - " + b);
        }
    }

    public static void main(String[] args) {

        //最原始的调用一个实现类的方法========================
        Love love = new Love();
        love.love(0,0);

        Love01 love01 = new Love01();
        love01.love(22,222);


        //2、匿名内部类--- ilove 不是类名,而是一个对象的引用变量名
        ILove ilove = new ILove(){
            @Override
            public void love(int a, int b) {
                System.err.println("实现接口的love方法------>" + a + " - " + b);
            }
        };
        ilove.love(66,666);


        //直接简化成 lambda

        ilove = (a,b)->{
            System.err.println("简化成 lambda 表达式------>" + a + " - " + b);
        };
        ilove.love(99,999);
        
    }
}

//接口
interface ILove {
    void love(int a,int b);
}

//实现类
class Love implements ILove {
    //实现接口方法
    @Override
    public void love(int a,int b) {
        System.err.println("实现接口的love方法------> " + a + " - " + b);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_L_J_H_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值