Consumer接口

java,util.function.Consumer接口则正好与Supplier接口相反,它不是生产一个数据,而是消费一个数据,其数据类型由泛型决定

抽象方法:accept

Consumer接口中包含抽象方法void accept(T t),意为消费一个执行的数据。

使用:

package com.yang.Test.ConsumerStudy;

import java.util.function.Consumer;

/**
* java.util.function.Consumer<T>接口则正好与Supplier接口相反
* 它不是生产一个数据,而是消费一个数据,其数据类型由泛型指定
* Consumer接口中包含抽象方法void accept(T t),意为消费一个指定泛型的数据。
* Consumer接口是一个消费性接口,泛型执行什么类型,就可以使用accept方法消费什么类型的数据
* 至于怎么消费(使用),需要自定义(输出、计算....)
*/
public class Study01 {
/**
* 定义一个方法
* 方法的参数传递一个字符串的姓名
* 方法的参数传递Consumer接口,泛型使用String
* 可以使用Consumer接口消费字符串中的姓名
*/
private static void method(String name, Consumer<String> consumer){
consumer.accept(name);
} public static void main(String[] args) {
//调用method方法,传递一个姓名字符串和Consumer
method("赵丽颖",s -> {
//对传递的字符串进行消费
//消费方式:直接输出
System.out.println(s); //消费方式:把字符串进行反转输出
StringBuilder stringBuilder = new StringBuilder(s);
StringBuilder reverse = stringBuilder.reverse();
System.out.println(reverse);
});
}
}

常用的函数式接口_Consumer接口的默认方法andThen

package com.yang.Test.ConsumerStudy;

import java.util.Locale;
import java.util.function.Consumer; /**
* Consumer接口的默认方法andThen
* 作用:需要两个Consumer接口,可以把两个Consumer接口组合到一起,对数据进行消费
*
* 例如:
* Consumer<String> con1
* Consumer<String> con2
* String str = "hello";
* con1.accept(s);
* con2.accept(s);
* andThen连接两个Consumer 再进行消费
* 谁写在前面谁先消费
* con1.andThen(con2).accept(str);
*/
public class Study02 {
//定义一个方法方法的参数传递一个字符串和两个Consumer接口,Consumer接口的泛型也是用字符串
public static void method(String str, Consumer<String> con1, Consumer<String> con2) {
// con1.accept(str);
// con2.accept(str);
//使用andThen方法把两个Consumer接口连接到一起再进行消费
con1.andThen(con2).accept(str);
} public static void main(String[] args) {
/* //调用method方法,传递一个字符串和两个Lambda表达式
method("hello", s -> {
//消费方式:把字符串转换为大写输出
System.out.println(s.toUpperCase());
}, s -> {
//消费方式:把字符串转换为小写
System.out.println(s.toLowerCase());
});*/
method("abcde",s -> System.out.println(s.toLowerCase()),s -> System.out.println(s.toUpperCase()));
}
}

常用的函数式接口_Consumer接口和常用的函数式接口_Consumer接口的默认方法andThen的更多相关文章

  1. 常用的函数式接口Function接口和常用的函数式接口Function接口默认方法andThen

    常用的函数式接口Function接口 package com.yang.Test.FunctionStudy; import java.util.function.Function; /** * ja ...

  2. Java8新特性之四:接口默认方法和静态方法

    在JDK1.8以前,接口(interface)没有提供任何具体的实现,在<JAVA编程思想>中是这样描述的:"interface这个关键字产生了一个完全抽象的类,它根本就没有提供 ...

  3. java8新特性:接口的默认方法与静态方法

    接口中一共可以定义三种方法: 1.抽象方法,也就是需要实现者必须实现的方法,最常见的那种 2.默认方法,不需要实现者实现 3.静态方法,不需要实现者实现 默认方法: 允许在已有的接口中添加新方法,而同 ...

  4. java1.8新特性(一)接口的默认方法

    一 简介 我们通常所说的接口的作用是用于定义一套标准.约束.规范等,接口中的方法只声明方法的签名,不提供相应的方法体,方法体由对应的实现类去实现. 在JDK1.8中打破了这样的认识,接口中的方法可以有 ...

  5. JDK1.8新特性(一): 接口的默认方法default

    前言 今天在学习mysql分区优化时,发现一个博客专家大神,对其发布的文章简单学习一下: 一:简介 我们通常所说的接口的作用是用于定义一套标准.约束.规范等,接口中的方法只声明方法的签名,不提供相应的 ...

  6. 常用的函数式接口_Prodicate接口_默认方法or&negate和常用的函数式接口_Predicate接口练习_集合信息筛选

    常用的函数式接口_Prodicate接口_默认方法or&negate OR package com.yang.Test.PredicateStudy; import java.util.fun ...

  7. 常用的函数式接口_Predicate接口和常用的函数式借楼_Predicate_默认方法and

    package com.yang.Test.PredicateStudy; import java.util.function.Predicate; /** * java.util.function. ...

  8. 常用的函数式接口_Predicate接口_默认方法and和Predicate接口练习_集合接口筛选

    默认方法:and 既然是条件判断,就会存在与.或.非三种常见的逻辑关系.其中将两个Preadicate条件使用"与"逻辑连接起来实现"并且"的效果时,可以使用d ...

  9. 16、Collection接口及其子接口Set和List(常用类LinkedList,ArrayList,Vector和Stack)

    16.Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同 ...

随机推荐

  1. 哈工大软件构造Lab1(2022)

    目录 一.实验目标概述 二.实验环境配置 1.安装编写java程序的IDE--IntelliJ IDEA 2.安装Git 3.安装Junit 4.GitHub Lab1仓库的URL地址 三.实验过程 ...

  2. windows 10 21H1 顶部任务栏点击音量或其他图标不出弹框

    右键任务栏,按照图片中描述操作

  3. Linux篇-The slave I/O thread stops because master and slave have equal...

    1)操作系统 cat /etc/issue CentOS release 6.6 (Final) Kernel \r on an \m cat /proc/version Linux version ...

  4. python之三元表达式与生成式与匿名与内置函数(部分)

    目录 三元表达式 各种生成式 列表生成式(可同样作用于集合) 字典生成式 匿名函数 重要内置函数 map() zip() filter() reduce() 常见内置函数(部分) 三元表达式 三元表达 ...

  5. 基于云服务MRS构建DolphinScheduler2调度系统

    摘要:本文介绍如何搭建DolphinScheduler并运行MRS作业. 本文分享自华为云社区<基于云服务MRS构建DolphinScheduler2调度系统>,作者: 啊喔YeYe . ...

  6. Clickhouse实时数仓建设

    1.概述 Clickhouse是一个开源的列式存储数据库,其主要场景用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告.今天,笔者就为大家介绍如何使用Clickhouse来构建实 ...

  7. mybatis中返回一个List字段

    目的:在一个查询接口里面,返回一个人的信息,以及这个人所携带的东西的信息,返回效果如下: { "msg": { "listMain": [ { "id ...

  8. 【Openxml】颜色变化属性计算

    Openxml的颜色变化属性 目前Openxml存在颜色变化属性如下: 参数 说明 Hue 色调(色相) HueModulate 色调调制,百分比 HueOffset 色调偏移量,角度值 Satura ...

  9. 6G显卡显存不足出现CUDA Error:out of memory解决办法

    ​ 从6月初开始,6G显存的显卡开始出现CUDA Error:out of memory的问题,这是因为dag文件一直在增加,不过要增加到6G还需要最少两年的时间. 现在出现问题的原因是1.内核太古老 ...

  10. docker安装报错failure: repodata/repomd.xml from mirrors.aliyun.com_docker-ce_linux_centos_docker-ce.pro

    1.进入 /etc/yum.repos.d 目录下,将所有有关 docker 的 repo 全部删掉 2.重新添加镜像 sudo yum-config-manager --add-repo https ...