java中的lambda表达式

本文介绍了Java 1.8中的lambda表达式,它简化了使用只有一个抽象方法的接口的方式,替代了匿名内部类。通过示例展示了lambda如何减少代码量并提高可读性,强调了lambda表达式本质上是方法引用或函数。文章指出,无论选择匿名内部类还是lambda,关键在于解决问题的效率和代码的简洁性。
摘要由CSDN通过智能技术生成

lambda表达式

在java1.8中,更新了很多特性,其中最常用的要属于lambda表达式,但是首次接触lambda表达式的人可能对于lambda的语法可能会很疑惑或者不知道怎么去编写一个lambda表达式,这次就和大家分享一下关于个人在工作中使用lambda表达式的一些个人经验。

Talk is cheap, show me the code

以前的写法:

interface Tools{
    void toDo(String thing);
}

public class Demo {
    public static void main(String[] str){
        Tools tool = new Tools() {
            @Override
            public void toDo(String thing) {
                System.out.printf("to do %s", thing);
            }
        };
        tool.toDo("some thing");
    }
}

使用lambda表达式后的写法:

interface Tools{
    void toDo(String thing);
}

public class Demo {
    public static void main(String[] args) {
        Tools tool = thing -> System.out.printf("to do %s", thing);
        tool.toDo("some thing");
    }
}

其实上面两种方式都达到了同样的效果,通过上面两个例子的对比,其实我们可以发现lambda的本质就是替代了之前的匿名内部类,但是比较特殊的一点是lambda表达式只能针对只有一个抽象方法的接口【静态方法和默认方法不被包含在内】,也就是说接口中只允许有一个抽象方法,否则就无法使用lambda表达式,这是因为java内部针对于只有一个抽象方法的接口默认让其可以支持lambda表达式的写法,所以其实lambda表示式就是简化了我们在使用接口时,接口没有具体的实现类,而如果是自己创建一个实现类又有点重了,因此,使用lambda表达式可以让java在运行时自已给我们生成一个接口的实现类,让编程更加简化,习惯了lambda表达式之后,其实lambda的可读性也是很高的。

后记

lambda表达式究其本质,其实就是方法的引用的,或者说lambda表达式就是函数【java中叫做方法】。当然,任何语法都是一种不一样的表达方式,使用匿名内部类也好,使用lambda表达式也好,只要能解决问题,其实方法的形式并不重要。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值