常用的函数式接口_Consumer接口和常用的函数式接口_Consumer接口的默认方法andThen
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的更多相关文章
- 常用的函数式接口Function接口和常用的函数式接口Function接口默认方法andThen
常用的函数式接口Function接口 package com.yang.Test.FunctionStudy; import java.util.function.Function; /** * ja ...
- Java8新特性之四:接口默认方法和静态方法
在JDK1.8以前,接口(interface)没有提供任何具体的实现,在<JAVA编程思想>中是这样描述的:"interface这个关键字产生了一个完全抽象的类,它根本就没有提供 ...
- java8新特性:接口的默认方法与静态方法
接口中一共可以定义三种方法: 1.抽象方法,也就是需要实现者必须实现的方法,最常见的那种 2.默认方法,不需要实现者实现 3.静态方法,不需要实现者实现 默认方法: 允许在已有的接口中添加新方法,而同 ...
- java1.8新特性(一)接口的默认方法
一 简介 我们通常所说的接口的作用是用于定义一套标准.约束.规范等,接口中的方法只声明方法的签名,不提供相应的方法体,方法体由对应的实现类去实现. 在JDK1.8中打破了这样的认识,接口中的方法可以有 ...
- JDK1.8新特性(一): 接口的默认方法default
前言 今天在学习mysql分区优化时,发现一个博客专家大神,对其发布的文章简单学习一下: 一:简介 我们通常所说的接口的作用是用于定义一套标准.约束.规范等,接口中的方法只声明方法的签名,不提供相应的 ...
- 常用的函数式接口_Prodicate接口_默认方法or&negate和常用的函数式接口_Predicate接口练习_集合信息筛选
常用的函数式接口_Prodicate接口_默认方法or&negate OR package com.yang.Test.PredicateStudy; import java.util.fun ...
- 常用的函数式接口_Predicate接口和常用的函数式借楼_Predicate_默认方法and
package com.yang.Test.PredicateStudy; import java.util.function.Predicate; /** * java.util.function. ...
- 常用的函数式接口_Predicate接口_默认方法and和Predicate接口练习_集合接口筛选
默认方法:and 既然是条件判断,就会存在与.或.非三种常见的逻辑关系.其中将两个Preadicate条件使用"与"逻辑连接起来实现"并且"的效果时,可以使用d ...
- 16、Collection接口及其子接口Set和List(常用类LinkedList,ArrayList,Vector和Stack)
16.Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同 ...
随机推荐
- xrdp出现xrdp vnc error problem connecting解决办法
# generate a file called .xsession in your home directory, and set default desktop echo "xfce4- ...
- controller-tool的简单使用
介绍 在上一篇code-generator简单介绍中重点介绍了如何使用code-generator来自动生成代码,通过自动生成的代码可以帮助我们像访问k8s内置资源那样来操作我们的CRD,其实就是帮助 ...
- windbg的时间旅行实现对 C# 程序的终极调试
一:什么是时间旅行 简而言之就是把程序的执行流拍成vlog,这样就可以对 vlog 快进或者倒退,还可以分享给别人做进一步的分析,是不是想都不敢想. 很开心的是 windbg preview 版本中已 ...
- 一探 Vue 数据响应式原理
一探 Vue 数据响应式原理 本文写于 2020 年 8 月 5 日 相信在很多新人第一次使用 Vue 这种框架的时候,就会被其修改数据便自动更新视图的操作所震撼. Vue 的文档中也这么写道: Vu ...
- 探索ABP基础架构
为了了解应用程序是如何配置和初始化,本文将探讨ASP.NET Core和ABP框架最基本的构建模块.我们将从 ASP.NET Core 的 Startup类开始了解为什么我们需要模块化系统,以及 AB ...
- JSON数据传输大法第一式——用OADate处理日期格式
JSON作为一种轻量级的数据交换格式,通常采用完全独立于编程语言的文本格式来存储和表示数据.它的层次结构简洁清晰,易于人们的阅读和编写,此外机器编写和生成也会变得容易,可以有效地提升网络传输效率,这些 ...
- 463. Island Perimeter - LeetCode
Question 463. Island Perimeter Solution 题目大意:给出一个二维数组1表示陆地0表示海,求陆地的周长 思路: 重新构造一张地图grid2即一个二维数组,比原数组大 ...
- 推荐一款新框架PyScript:在 HTML 嵌入 Python 代码!
一.介绍 网页浏览器是目前世界上最普遍,最可携的计算机环境.几乎所有人都可以在计算机或是手机上使用网页浏览器,以没有基础设施障碍的方式访问程序. 在 PyCon US 2022 上,知名 Python ...
- 阿里云OSS + PicGo搭建图床
1.阿里云 OSS 登录阿里云,进入控制台. 打开侧边栏,找到对象存储 OSS. 右侧找到 Bucket 管理,点击创建 Bucket. 根据引导配置 Bucket 其他同城冗余存储和版本控制等增值服 ...
- 微信小程序开发 记录
采坑了 微信小程序--TabBar不出现的一种原因 学习微信小程序中,遇到底部的TabBar不出现的问题.经过多番尝试,终于解决问题.在此记录问题产生的原因和对策.下面先描述错误现象,接着指出错误原因 ...