JDK8函数式接口之BiConsumer

简介: JDK8函数式接口之BiConsumer

写在前面


JDK8 API提供了很多函数式接口,这些函数式接口可以被抽象成一个具体的方法,并且使其使用在Lambda表达式中,今天我们要来说的就是其中的BiConsumer函数接口。


JDK8函数式接口之BiConsumer


今天主要是来看一下函数式接口中的BiConsumer函数接口,下面就看一下吧。

首先我们先来看一下BiConsumer函数接口的源码,如下代码:


@FunctionalInterface
public interface BiConsumer<T, U> {
    void accept(T t, U u);
    default BiConsumer<T, U> andThen(BiConsumer<? super T, ? super U> after) {
        Objects.requireNonNull(after);
        return (l, r) -> {
            accept(l, r);
            after.accept(l, r);
        };
    }
}


由上源码,我们可以看得出来,BiConsumer函数接口有着一个默认方法andThen,并且还实现了一个accept方法。


accept方法如何使用呢?


accept方法是很多函数接口中实现的方法了,一般都是执行的意思,并且执行的是该函数接口的一些特征功能,看一下下面的使用代码吧。


public static void main(String[] args) {
    BiConsumer<Integer, String> biConsumer = (a,b) ->{
        System.out.println(a + b);
    };
    biConsumer.accept(100, "分");
}


上述代码的执行结果是

100分

传入两个参数,然后我们可以任意使用这两个值作为逻辑的处理。


andThen方法如何使用呢?


那么andThen方法又如何使用,来看一下代码示例吧。


public static void main(String[] args) {
    BiConsumer<Integer, String> biConsumer = (a,b) ->{
        System.out.println(a + b);
    };
    BiConsumer<Integer, String> biConsumer1 = (a,b) ->{
        if(a == 100){
            System.out.println("这个是100!");
        }
    };
    biConsumer.andThen(biConsumer1).accept(100, "分");
}


上述代码中,我们可以得到的结果是,如下:

100分 这个是100!

其实andThen方法,就是在原来BiConsumer对象的基础上,再次执行一个BiConsumer对象,就像是同一组数据进行了多次逻辑的处理。

但是每次逻辑不会受到影响。


总结

今天我们来学习了BiConsumer函数接口的一些特征和具体的一些方法,相信大家也会其接口有了大概的理解,一起加油吧。


相关文章
|
1月前
|
Java
JavaSE——JDk8新特性(1/2):Lambda表达式(具体实现、函数式接口、简化setAll、Comparator),Lambda表达式的省略写法
JavaSE——JDk8新特性(1/2):Lambda表达式(具体实现、函数式接口、简化setAll、Comparator),Lambda表达式的省略写法
28 1
|
20天前
|
Java
JDK 1.8 函数接口(收藏用)
JDK 1.8 函数接口(收藏用)
11 0
|
2月前
|
Java
【JAVA进阶篇教学】第四篇:JDK8中函数式接口
【JAVA进阶篇教学】第四篇:JDK8中函数式接口
|
2月前
|
Java 开发者
JDK 8:函数式接口的新篇章
JDK 8引入了函数式接口,这一新特性为Java开发者带来了巨大的便利。本文将深入探讨函数式接口的原理、优势以及如何在实际开发中应用这一特性。
|
2月前
|
Java 开发者
JDK 9新特性探秘:接口中的私有方法
本文旨在探讨Java Development Kit 9(JDK 9)为Java接口引入的新特性——私有方法。在JDK 9之前,接口只能包含公共的抽象方法和常量。然而,随着Java的不断发展,接口中需要更加灵活的方式来处理复杂性和代码重用。因此,JDK 9引入了私有方法,允许开发者在接口内部定义私有方法和私有静态方法,从而提高了代码的模块性和可维护性。本文将详细介绍这一新特性的使用方法、应用场景及其对Java编程的影响。
|
2月前
|
存储 Java 关系型数据库
JDK8中的新特性(Lambda、函数式接口、方法引用、Stream)(二)
JDK8中的新特性(Lambda、函数式接口、方法引用、Stream)(二)
|
2月前
|
JavaScript 前端开发 Java
JDK8中的新特性(Lambda、函数式接口、方法引用、Stream)(一)
JDK8中的新特性(Lambda、函数式接口、方法引用、Stream)(一)
|
2月前
|
Java
重学JDK8新特性之Lambda、函数式接口、接口新增方法、方法引用
重学JDK8新特性之Lambda、函数式接口、接口新增方法、方法引用
44 0
|
11天前
|
IDE Oracle Java
day4:JDK、IntelliJ IDEA的安装和环境变量配置
【7月更文挑战第4天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
29 0
|
7天前
|
存储 Ubuntu Java
【Linux】已解决:Ubuntu虚拟机安装Java/JDK
【Linux】已解决:Ubuntu虚拟机安装Java/JDK
13 1