Lambda表达式

简介: Lambda表达式是JDK8后的一种新语法形式 Lambda表达式只能简化函数式接口的匿名内部类的写法形式 演示:先创建应该抽象类 使用Lambda表达式抽象简化匿名内部类,转换类型必须是接口 把Animal类改成接口 此时已经编译正常,并且对对象a进行了简化 首先必须是接口,其次接口中只能有一个抽象方法函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是 Lambda,所以函数式接口就是可以适用于Lambda使用的接口总结有时我们需要在程序的某处使用

 目录

前言

一、Lambda表达式简化格式

1.简化格式

2.目标类型必须是接口

3.进一步简化

二、什么是函数接口

1.概念

2.@FunctionalInterface注解

总结


前言

Lambda表达式是JDK8后的一种新语法形式


一、Lambda表达式简化格式

1.简化格式

image.gif

2.目标类型必须是接口

Lambda表达式只能简化函数式接口的匿名内部类的写法形式

演示:先创建应该抽象类

abstract class Animal {
    public abstract void run();
}

image.gif

使用Lambda表达式抽象简化匿名内部类,转换类型必须是接口

image.gif

把Animal类改成接口

interface Animal {
    public abstract void run();
}

image.gif

image.gif

此时已经编译正常,并且对对象a进行了简化

3.进一步简化

public class Test {
    public static void main(String[] args) {
    Animal a = ()->{
            System.out.println("狗四条腿跑");
        };
        go(a);
        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
        go(()->{
            System.out.println("狗四条腿跑");
        });
    }
    public static void go(Animal animal) {
        System.out.println("动物开始跑");
        animal.run();
        System.out.println("动物不跑了");
    }
}

image.gif

image.gif

image.gif

二、什么是函数接口

1.概念

首先必须是接口,其次接口中只能有一个抽象方法

函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是 Lambda,所以函数式接口就是可以适用于Lambda使用的接口

2.@FunctionalInterface注解

@FunctionalInterface //加上此注解就只能是函数式接口,里面只能有一哥抽象方法
interface Animal {
    public abstract void run();
}

image.gif


总结

有时我们需要在程序的某处使用一次某个函数,在这时使用lambda函数更加的方便也便于理解。

目录
相关文章
|
22天前
|
算法 编译器 C++
【C++11】lambda表达式
C++11 引入了 Lambda 表达式,这是一种定义匿名函数的方式,极大提升了代码的简洁性和可维护性。本文详细介绍了 Lambda 表达式的语法、捕获机制及应用场景,包括在标准算法、排序和事件回调中的使用,以及高级特性如捕获 `this` 指针和可变 Lambda 表达式。通过这些内容,读者可以全面掌握 Lambda 表达式,提升 C++ 编程技能。
51 3
|
3月前
|
安全 Java Serverless
Lambda表达式使用及详解
Java 8引入的Lambda表达式是一种重要的功能,它允许你以更简洁、更直接的方式传递方法。Lambda可以被用来代替只有单个抽象方法的接口的匿名实现类。这里有一些Lambda表达式的实际应用场景及其示例:
|
Java 编译器 C#
C#中的Lambda表达式
C#中的Lambda表达式
72 0
|
7月前
|
算法 编译器 C++
C++中的lambda表达式
C++中的lambda表达式
37 0
|
7月前
|
Java
lambda表达式详解
lambda表达式详解
|
7月前
|
算法 编译器
C++11(lambda表达式)
C++11(lambda表达式)
67 0
|
算法 编译器
C++11 lambda表达式(下)
C++11 lambda表达式(下)
96 2
|
算法 搜索推荐 编译器
C++11:lambda表达式
C++11:lambda表达式
45 0
|
存储 编译器 C++
c++ lambda表达式
c++ lambda表达式
88 0
|
存储 算法 编译器
lambda表达式的介绍
lambda表达式的介绍
119 0