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函数更加的方便也便于理解。

目录
相关文章
|
编译器
C++11 lambda表达式(上)
C++11 lambda表达式
68 0
|
6月前
|
Java 编译器
Lambda表达式
Lambda表达式
34 0
lambda表达式
lambda表达式是C++11引入的一种简洁的函数定义的方法。lambda表达式具有间接的语法和灵活的使用方式,让代码更加简洁和易读。特别是与function结合起来使得代码的编写更加灵活。本文将简单介绍lambda表达式的相关用法。
|
6月前
|
并行计算 Java 编译器
Lambda表达式超详解
Lambda表达式超详解
|
6月前
|
算法 编译器
C++11(lambda表达式)
C++11(lambda表达式)
66 0
|
算法 搜索推荐 编译器
C++11:lambda表达式
C++11:lambda表达式
44 0
|
存储 编译器 C++
c++ lambda表达式
c++ lambda表达式
87 0
|
Java
Lambda表达式的实际情况和应用
Lambda表达式是Java 8引入的一个重要特性,它提供了一种简洁而强大的方式来表示匿名函数。Lambda表达式可以用于各种情况和应用,包括但不限于以下几个方面:
77 0
|
存储 算法 编译器
lambda表达式的介绍
lambda表达式的介绍
115 0
|
搜索推荐 Java
Lambda表达式详解
Lambda表达式详解