java8新特性--lambda表达式使用

本文详细介绍了Java 8的lambda表达式,包括它如何简化代码、与传统匿名内部类的区别,以及函数式接口的应用。通过示例展示了Consumer、Supplier、Function和Predicate四大常见接口的使用。此外,还探讨了方法引用的概念,如何利用它进一步优化代码,提高代码的可读性和效率。
摘要由CSDN通过智能技术生成

java-lambda表达式

lambda是一个匿名函数,可以将lambda表达式理解为一段可以传递的代码。使用lambda表达式可以写出更加简洁且灵活的代码。

lambda表达式与原始写法对比

实现Runnable接口

  1. 使用匿名内部类:

    Runnable runnableCls = new Runnable() {
         
        @Override
        public void run() {
         
            System.out.println("使用匿名内部类实现Runnable接口");
        }
    };
    
  2. 使用Lambda表达式

    Runnable runnableLam = ()->{
         
                System.out.println("使用Lambda表达式实现Runnable接口");
            };
    

​ 在这里可以看到,在使用Lambda表达式后,代码变得简洁了许多。Lambda表达式方法中我们可以将代码看做两部分组成,以->为分隔,左侧为Lambda表达式的参数列表,右侧为Lambda体,是抽象方法的实现逻辑。

函数式接口

​ 函数式接口:只包含一个抽象方法的接口

​ 我们可以使用Lambda表达式创建函数式接口的对象。当Lambda表达式需要抛出受查异常时,需要在函数式接口的抽象方法上进行异常的声明。此外,我们可以使用@FunctionalInterface注解来判断接口是否为函数式接口。与其他的函数式编程语言不同,java中的Lambda表达式是一个对象(实现函数式接口的类对象)。java提供了一系列的函数式接口供开发者使用,其中四个常见的函数式接口分别如下:

  1. Consumer<T>–消费型接口

    public interface Consumer<T> {
         
        void accept(T t);
        //...
    }
    

    需要对类型为T的对象进行操作。使用Consumer接口打印小于整数n的素数数目:

    Consumer<Integer> primeCount = i -> {
         
                int count = 1;//从3开始,一定存在素数2
                if (i < 3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值