java--Lambda(2)表达式语法

简介: 最基本的 Lambda 表达式,它由三部分组成具体格式是这样子的:参数 -> 具体实现;Lambda表达式格式:()->{}是一段带有输入参数的可执行语句块。可选类型声明: 不需要声明参数类型,编译器可以自动识别参数类型和参数值。可选的参数圆括号: 一个参数可以不用定义圆括号,但多个参数需要定义圆括号;可选的大括号: 如果函数主体只包含一个语句,就不需要使用大括号;可选的返回关键字: 如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指明表达式返回了一个数值。

@[TOC]

0 写在前面

最基本的 Lambda 表达式,它由三部分组成具体格式是这样子的:参数 -> 具体实现;

Lambda表达式格式:()->{}

是一段带有输入参数的可执行语句块。
Lambda 表达式有这么几个特点:
可选类型声明: 不需要声明参数类型,编译器可以自动识别参数类型和参数值。
可选的参数圆括号: 一个参数可以不用定义圆括号,但多个参数需要定义圆括号;
可选的大括号: 如果函数主体只包含一个语句,就不需要使用大括号;
可选的返回关键字: 如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指明表达式返回了一个数值。

1 Lambda 表达式的五种形式

1.1 不包含参数:

()->代码块

代码实例

//接口类
public interface LambdaInterface01 {
    public void lambdaInterface01();
}
//测试类
public class LambdaExample01 implements LambdaInterface01 {
    public static void main(String[] args) {
        LambdaInterface01 example = () ->
            System.out.println("不包含参数,执行啦");

        example.lambdaInterface01();
    }
    @Override
    public void lambdaInterface01() {

    }
}

结果截图:
在这里插入图片描述

1.2 包含一个参数:

(一个参数)->代码块

我们可以把 () 省略。

//接口类
public interface LambdaInterface02 {
    public int lambdaInterface02(int num);
}
//测试类
public class LambdaExample02 implements LambdaInterface02 {
    public static void main(String[] args) {
        LambdaInterface02 example = (int num) ->
                System.out.println("传入的数据为" + num);


        example.lambdaInterface02(3);
    }

    @Override
    public void lambdaInterface02(int num) {
    }

}

结果截图:
在这里插入图片描述

1.3 有多个参数

(参数1,参数2,……)->代码块

使用 () 把参数包裹起来,并用 , 来分割参数。上面的代码表示

//接口类
public interface LambdaInterface03 {
    public int lambdaInterface03(int x, int y,int z);
}
//测试类
public class LambdaExample03 implements LambdaInterface03 {

    public static void main(String[] args) {
        LambdaInterface03 example = (int x, int y, int z) -> System.out.println("三个数字之和为"+ (x+y+z));

        example.lambdaInterface03(10,9,8);

    }

    @Override
    public void lambdaInterface03(int x, int y, int z) {

    }
}

结果截图:
在这里插入图片描述

1.4 表达式主体是不是一个代码块

带有{},{}里面是代码块

//接口类
public interface LambdaInterface04 {
    public void lambdaInterface04(String str);
}
//测试类
public class LambdaExample04 implements LambdaInterface04 {

    public static void main(String[] args) {
        LambdaInterface04 example = (String str)->{
            if (str.isEmpty()){
                System.out.println("字符串为空");
            }
            else {
                System.out.println("字符串的内容为"+str);
            }
        };
        example.lambdaInterface04("哈喽,我是演示带有代码块的字符串");
    }
    
    @Override
    public void lambdaInterface04(String str) {

    }
}

结果截图:
在这里插入图片描述

1.5 不声明参数类型

参数不被声明类型
举例:

ActionListener oneArguments = event -> System.out.println("hello world");

2 写在末尾

Lambda 表达式的基本语法就基本是这样子了,简单记录一下,不仅可以这样写,还可以返回参数什么的,暂时先写这些吧,以后会找时间记录一下的。
Lambda表示式其实都是为了简化接口实例化的代码。
灵活使用吧,掌握这些知识可以帮助我们快速的辨别一个 Lambda 表达式,方便的去理解程序的意图。

相关文章
|
2月前
|
Java
Java基础语法与面向对象
重载(Overload)指同一类中方法名相同、参数列表不同,与返回值无关;重写(Override)指子类重新实现父类方法,方法名和参数列表必须相同,返回类型兼容。重载发生在同类,重写发生在继承关系中。
125 1
|
2月前
|
存储 SQL NoSQL
Redis-常用语法以及java互联实践案例
本文详细介绍了Redis的数据结构、常用命令及其Java客户端的使用,涵盖String、Hash、List、Set、SortedSet等数据类型及操作,同时提供了Jedis和Spring Boot Data Redis的实战示例,帮助开发者快速掌握Redis在实际项目中的应用。
255 1
Redis-常用语法以及java互联实践案例
|
3月前
|
Java 编译器 API
Java Lambda表达式与函数式编程入门
Lambda表达式是Java 8引入的重要特性,简化了函数式编程的实现方式。它通过简洁的语法替代传统的匿名内部类,使代码更清晰、易读。本文深入讲解Lambda表达式的基本语法、函数式接口、方法引用等核心概念,并结合集合操作、线程处理、事件回调等实战案例,帮助开发者掌握现代Java编程技巧。同时,还解析了面试中高频出现的相关问题,助你深入理解其原理与应用场景。
|
3月前
|
安全 Java API
Java中的Lambda表达式:简洁与功能的结合
Java中的Lambda表达式:简洁与功能的结合
402 211
|
3月前
|
安全 Java
Java中的Switch表达式:更简洁的多路分支
Java中的Switch表达式:更简洁的多路分支
473 211
|
3月前
|
算法 Java 测试技术
零基础学 Java: 从语法入门到企业级项目实战的详细学习路线解析
本文为零基础学习者提供完整的Java学习路线,涵盖语法基础、面向对象编程、数据结构与算法、多线程、JVM原理、Spring框架、Spring Boot及项目实战,助你从入门到进阶,系统掌握Java编程技能,提升实战开发能力。
196 0
|
3月前
|
存储 Java 容器
Java基本语法详解
本文深入讲解了Java编程的基础语法,涵盖数据类型、运算符、控制结构及数组等核心内容,帮助初学者构建坚实的编程基础。
|
3月前
|
Java 编译器
Java 17 Switch表达式:更简洁、更强大的流程控制
Java 17 Switch表达式:更简洁、更强大的流程控制
|
4月前
|
Java 数据库连接 数据库
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
本文全面总结了Java核心知识点,涵盖基础语法、面向对象、集合框架、并发编程、网络编程及主流框架如Spring生态、MyBatis等,结合JVM原理与性能优化技巧,并通过一个学生信息管理系统的实战案例,帮助你快速掌握Java开发技能,适合Java学习与面试准备。
208 2
Java 相关知识点总结含基础语法进阶技巧及面试重点知识