jdk8——lambda表达式

在 Java 8 中引入了 Lambda 表达式,使得代码更加简洁和易读。Lambda 表达式是一种匿名函数,可以作为参数传递给方法或者存储在变量中。它主要用于简化函数式编程。

Lambda 表达式只能用于实现函数式接口。函数式接口是只包含一个抽象方法的接口,可以使用 @FunctionalInterface 注解进行标识,但这不是必须的。

语法形式 (parameters) -> { statements; }

java 复制代码
@FunctionalInterface
public interface Cul {
    int cul(int a, int b);
}
public class test {
    public static void main(String[] args) {
          Cul add = (int a, int b) -> {
              return a + b;
          };//本质就是简化了匿名函数的书写
        System.out.println(add.cul(1, 2));//3
    }
}

简化规则

1.参数类型可以省略不写

2.如果只有一个参数,参数类型可以省略,同时()也可以省略

3.如果Lambda表达式中方法体代码只有一行代码,可以省略大括号不写,同时要省略分号。此时如果这行代码是return语句,也必须去掉return。

上述案例简化后即如此

java 复制代码
public class test {
    public static void main(String[] args) {
          Cul add = ( a,  b) -> a + b;

        System.out.println(add.cul(1, 2));//3
    }
}
相关推荐
阳光宅男@李光熠4 小时前
【电子通识】一起学习TDK的EMC基础——电池兼容设计方法概述
java·前端·数据库
张宜强4 小时前
025 安居租赁 · 房屋租赁平台
java·课程设计
Java_2017_csdn5 小时前
ReentrantLock 与 Redis RLock 对比解读
java
YDS8295 小时前
Small Spring IOC篇:实现 Bean 的定义、注册、获取
java·spring
边境悍匪5 小时前
蜗牛学苑 Java 智能体学习 Day45|Knife4j+SpringBoot3、书城项目整合 MyBatis 思维导图复盘
java·开发语言·vue.js·学习·spring
我的xiaodoujiao5 小时前
Django 基础知识详细图文教程 9-Django 模板引擎 2
开发语言·数据库·后端·django
菜鸟~noob2335 小时前
【太空电子战】从CCS到Meadowlands:反通信系统的二十年演进史【含matlab代码】
开发语言·matlab
需要8265 小时前
Arthas 一个命令排查线上问题
java·jvm·spring·spring cloud
Kyrie_kk6 小时前
Java--ProcessBuilder操作系统进程
java·后端
SamDeepThinking6 小时前
关于java final关键字的可见性
java·后端·面试