Lambda表达式与函数式接口

本文深入解析Java 8的Lambda表达式,这一新特性简化了代码编写,介绍了Lambda表达式的格式、使用条件及函数式编程思想。通过具体示例,展示了不同语法格式的应用。

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

Lambda

( java8新特性)

什么是Lambda表达式   
     lambda表达式是一个匿名函数,使的代码更加简单,简洁

函数式编程思想

      面向对象过分强调必须通过对象的形式来做事,而函数式思想则尽量忽略面向
       对象的复杂语法--强调做什么,而不是以什么形式做  
       
        jdk1.8加入了Lambda表达式的重量级新特性

Lambda表达式的格式

       由三部分组成 
        一些参数
        一些箭头
        一段代码
      
      格式:
           (参数列表) ->{代码}  
           括号:接口中抽象方法的参数列表,没有就不写,多个参数间逗号隔开
            箭头:代表将参数赋给后面的代码
            大括号:重写接口的抽象方法的方法体

例如

      语法格式一:无参数数无返回值
    Runnable r = () -> System.out.println("Runnable!"); 
     
     语法格式二:有一个参数无返回值(Consumer为JDK的一个接口)
    Consumer<String> con = (x) -> System.out.println(x); 
    con.accept("Hello Lambda!"); 
     
     语法格式三:只有一个参数时,小括号可以省略(当然不太建议省略)
    Consumer<String> consumer = x -> System.out.println(x);

     语法格式4:只有一条语句时,不管是否有返回值(都可以省略return,大括号,分号)
                            且这个要省略的话,要三个一起省略

     语法格式5:Lambda表达式的参数列表的参数类型可以省略!是因为JVM编译时可以
       通过上下文推断出数据类型:也就是类型推断!

使用Lambda表达式的前提

     使用Lambda必须具有接口,且要求接口中有且仅有一个抽象方法
       不论是jdk自带的,还是自定义的接口,都是这样,有且仅有一个抽象方法的
       接口叫做函数式接口
        
        使用Lambda表达式必须具有上下文推断 
          也就是方法的参数或局部变量类型必须为Lambda对应的接口类型,才能使
          用该表达式做为接口的实例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值