千家信息网

如何掌握Java8中Lambda表达式函数式接口及方法构造器数组的引用

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容主要讲解"如何掌握Java8中Lambda表达式函数式接口及方法构造器数组的引用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何掌握Java8中
千家信息网最后更新 2026年10月31日如何掌握Java8中Lambda表达式函数式接口及方法构造器数组的引用

本篇内容主要讲解"如何掌握Java8中Lambda表达式函数式接口及方法构造器数组的引用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何掌握Java8中Lambda表达式函数式接口及方法构造器数组的引用"吧!

目录
  • 函数式接口概述

  • 函数式接口示例

    • 1、Runnable接口

    • 2、自定义函数式接口

    • 3、作为参数传递 Lambda 表达式

  • 内置函数式接口

    • Lambda简述

      • Lambda语法

        • 方法引用

          • 构造器引用

            • 数组引用

              函数式接口概述

              只包含一个抽象方法的接口,称为函数式接口。

              可以通过 Lambda 表达式来创建该接口的对象。

              可以在一个接口上使用 @FunctionalInterface 注解,这样做可以检查它是否是一个函数式接口。同时 javadoc 也会包含一条声明,说明这个接口是一个函数式接口。

              在java.util.function包下定义了Java 8 的丰富的函数式接口。

              在函数式编程语言当中,函数被当做一等公民对待。在将函数作为一等公民的编程语言中,Lambda表达式的类型是函数。但是在Java8中,有所不同。在Java8中,Lambda表达式是对象,而不是函数,它们必须依附于一类特别的对象类型--函数式接口。

              简单的说,在Java8中,Lambda表达式就是一个函数式接口的实例。这就是Lambda表达式和函数式接口的关系。也就是说,只要一个对象是函数式接口的实例,那么该对象就可以用Lambda表达式来表示。所以用匿名实现类表示的现在都可以用Lambda表达式来写。

              函数式接口示例

              1、Runnable接口

              2、自定义函数式接口

              @FunctionalInterfacepublic interface MyFunctional01{    public String getValue();}//使用泛型@FunctionalInterfacepublic interface MyFunctional02{    public T getValue(T t);}

              3、作为参数传递 Lambda 表达式

              public class LambdaTest {    public static void main(String[] args) {        String newStr = toUpperString(str -> str.toUpperCase(),"abcDEf");        System.out.println(newStr);    }    public static String toUpperString(MyFunc my,String str){        return my.getValue(str);    }}@FunctionalInterfaceinterface MyFunc{    public T getValue(T t);}

              内置函数式接口

              import java.util.function.Consumer;/** * @Author: Yeman * @Date: 2021-10-03-22:50 * @Description: */public class LambdaTest {    public static void main(String[] args) {        Consumer consumer = i -> System.out.println(i);        consumer.accept(9);    }}

              Lambda简述

              Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。

              其本质是作为函数式接口(只有一个抽象方法)的实例。

              Lambda 表达式:在Java 8 语言中引入的一种新的语法元素和操作符。这个操作符为 "->" , 该操作符被称为 Lambda 操作符或箭头操作符。它将 Lambda 分为两个部分:
              ①左侧:指定了 Lambda 表达式需要的参数列表。
              ②右侧:指定了 Lambda 体,是抽象方法的方法体。

              Lambda语法

              1、无参,无返回值

              public class LambdaTest {    public static void main(String[] args) {        //未使用Lambda表达式        Runnable runnable1 = new Runnable() {            @Override            public void run() {                System.out.println("这是第一个语法!");            }        };        runnable1.run();        System.out.println("======================");        //使用Lambda表达式        Runnable runnable2 = () -> {            System.out.println("这是用了Lambda表达式的一个语法!");        };        runnable2.run();    }}

              2、一个参数,无返回值


              3、数据类型可以省略,因为可由编译器推断得出,称为"类型推断"


              4、Lambda 若只需要一个参数时,参数的小括号可以省略


              5、Lambda 需要两个或以上的参数,多条执行语句,并且可以有返回值


              6、当 Lambda 体只有一条语句时,return 与大括号若有,都可以省略

              方法引用

              当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用。

              方法引用可以看做是Lambda表达式深层次的表达。换句话说,方法引用就是Lambda表达式,也就是函数式接口的一个实例,通过方法的名字来指向一个方法,可以认为是Lambda表达式的一个语法糖。

              要求:实现接口的抽象方法的参数列表和返回值类型,必须与方法引用的方法的参数列表和返回值类型保持一致。

              格式:使用操作符 "::" 将类(或对象)与方法名分隔开。

              如下三种主要使用情况:
              ①对象::非静态方法名
              ②类::静态方法名
              ③类::非静态方法名

              示例:

              import java.util.Comparator;import java.util.function.Consumer;/** * @Author: Yeman * @Date: 2021-10-03-22:50 * @Description: */public class LambdaTest {    public static void main(String[] args) {        Consumer consumer = i -> System.out.println(i);        consumer.accept(9);        Consumer stringConsumer = System.out :: println;        stringConsumer.accept("Hello");        Comparator comparable = (x, y) -> Integer.compare(x,y);        System.out.println(comparable.compare(2,9));        Comparator integerComparator = Integer :: compare;        System.out.println(integerComparator.compare(9,2));    }}

              构造器引用

              格式:ClassName::new

              与函数式接口相结合,自动与函数式接口中方法兼容。可以把构造器引用赋值给定义的方法,要求构造器参数列表要与接口中抽象方法的参数列表一致,且方法的返回值即为构造器对应类的对象。

              数组引用

              可以将数组看作一个类,则数组引用就类似于构造器引用。

              格式:type[] :: new

              import java.util.function.Function;/** * @Author: Yeman * @Date: 2021-10-03-22:50 * @Description: */public class LambdaTest {    public static void main(String[] args) {        Function function = length -> new String[length];        String[] apply = function.apply(3);        System.out.println(apply[2]);        System.out.println("================");        Function function1 = String[] :: new;        System.out.println(function1.apply(5));    }}

              到此,相信大家对"如何掌握Java8中Lambda表达式函数式接口及方法构造器数组的引用"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

              接口 函数 方法 表达式 参数 构造器 对象 数组 操作符 类型 语法 代码 实例 语言 就是 格式 示例 静态 一致 两个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司的优势 科技创新与互联网经济 互联网和科技创新 互联网科技社 紫鲸互联网科技 汇久创客互联网科技 互联网 视角下的科技创新 伴你行互联网科技有限公司 互联网科技公司介绍 金融科技和互联网金融 深圳前海聚择互联网科技有限公司 互联网科技博主是什么意思 宜昌元轩互联网科技有限公司 互联网金融科技展 世界互联网领先科技成果获奖 国大互联网教育科技有限公司薪资 元气玛特互联网科技公司是外包吗 互联网科技机房 保山互联网科技靠谱吗 互联网科技博主张洲 中智农互联网科技 腾讯科技 互联网女皇 丰台科技园 互联网 济南华为互联网科技产业总部基地 温州喔噻互联网科技有限公司 剑昆互联网络科技有限公司临桂 栖莱科技互联网股份有限公司 互联网科技和法律行业 杭州披云加互联网科技有限公司 互联网科技职业技能培训学校
              0