lambda表达式的进阶过程(二)

简介: lambda表达式的进阶过程

lambda表达式简化


未简化前:


10eac29f8fe9d490927f8c74cb3fcead_ecfb637b1a7f4aef8bfb063f46a7d51d.png


简化一:去掉参数类型


public class Testlambda {
    public static void main(String[] args) {
        //lambda表达式
        ILove love;
        love=( a)-> {
            System.out.println("I Love You"+a);
        };
        love.love(2);
    }
}
interface ILove{
    void love(int a);
}


简化二:去掉括号


public class Testlambda {
    public static void main(String[] args) {
        //lambda表达式
        ILove love;
        love= a-> {
            System.out.println("I Love You"+a);
        };
        love.love(2);
    }
}
interface ILove{
    void love(int a);
}


简化三:去掉花括号,前提是花括号中只有一行


public class Testlambda {
    public static void main(String[] args) {
        //lambda表达式
        ILove love;
        love= a-> System.out.println("I Love You"+a);
        love.love(2);
    }
}
interface ILove{
    void love(int a);
}


注:


lambda表达式只能由一行代码的情况,才能简化为一行,如果由都澳航那么就用代码块包裹

前提是接口为函数式接口

多个参数也可以去掉参数类型,要去掉,都去掉,不能带一个去一个


总结


  1. Lambda表达式实质上是一个可传递的匿名函数,可以实现函数式编程。


  1. 语法形式为:(参数列表) -> {代码体},去掉了方法名称、返回值声明等代码模板。


  1. Lambda通常用来传递给函数式接口的参数或赋值给函数式接口变量。


  1. 使用Lambda能避免创建匿名内部类,代码更简洁。


  1. Lambda可以访问外层作用域的变量,这称为闭包。


  1. Lambda表达了一个块的代码,也可以直接用于调用,称为代码块。


  1. Lambda可以延迟执行,只有被调用时才会执行。


  1. 常用的函数式接口如Consumer、Supplier、Function等。


  1. 可以用方法引用来直接引用已有的方法实现,更简洁。


  1. Lambda靠Java的类型推断来判断参数和返回类型。


  1. Lambda让Java加入了函数式编程的特性,可以写出更简洁、灵活的代码。


  1. 但也不能过度使用Lambda,需要区分应用场景,与面向对象编程结合使用。


总之,Lambda表达式让Java语言表达能力更强,编程风格更灵活,对于集合、流、事件驱动等编程场景都很有用。但还是要适度使用,与面向对象编程结合,发挥它的优势。


8b56f0e08bdff9b22e1974fa1dafb70c_235ded1d1bc543cf9d0f235a5e27958e.png


相关文章
|
7月前
|
存储 C++
【C++】多态(重写)的实现过程及其原理【核心知识点精讲】(22)
【C++】多态(重写)的实现过程及其原理【核心知识点精讲】(22)
|
2月前
|
数据格式
常用的Lambda表达式案例解析,工作中都会用到!
常用的Lambda表达式案例解析,工作中都会用到!
|
6月前
|
算法 安全 编译器
【C++进阶】模板进阶与仿函数:C++编程中的泛型与函数式编程思想
【C++进阶】模板进阶与仿函数:C++编程中的泛型与函数式编程思想
63 1
|
7月前
|
算法 编译器 程序员
【C++入门到精通】 Lambda表达式 C++11 [ C++入门 ]
【C++入门到精通】 Lambda表达式 C++11 [ C++入门 ]
56 1
|
7月前
|
并行计算 Java API
【专栏】Java 8的Lambda表达式增强了函数式编程,允许以匿名函数形式传递行为
【4月更文挑战第27天】Java 8的Lambda表达式增强了函数式编程,允许以匿名函数形式传递行为。其基本语法`(params) -> expression/statements`,类型由参数推断,可引用final或effectively final的外部变量。Lambda广泛应用于集合操作(如Stream API)、并行流处理和GUI事件处理,简化代码并提高效率。通过实例,展示了Lambda在集合筛选、并行计算和事件处理中的应用,从而提高开发质量和效率。
50 4
JDK1.8新特性Lambda表达式简化if-else里都有for循环的优化方式
JDK1.8新特性Lambda表达式简化if-else里都有for循环的优化方式
87 0
|
7月前
|
编译器 C++
【C++】lambda表达式语法详细解读(代码演示,要点解析)
【C++】lambda表达式语法详细解读(代码演示,要点解析)
|
算法 编译器 C++
C++11 Lambda表达式的用法与原理
C++11 Lambda表达式的用法与原理
112 0
|
Java
lambda表达式的进阶过程(一)
lambda表达式的进阶过程
77 0
|
前端开发
前端学习案例1-高阶函数1
前端学习案例1-高阶函数1
62 0
前端学习案例1-高阶函数1