常用的函数式接口_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允许相同 ...
随机推荐
- python工具--获取盛科交换机端口模块类型,波长,传输距离等信息
交换机端口模块信息对应的OID节点为各厂商私有节点,获取其他厂商信息需要把OID进行替换 1 #! /usr/bin/env python 2 #-*-coding:utf-8-*- 3 import ...
- API Schema in kubernetes
目录 什么是schema 数据库中的schema Kubernetes中的schema 通过示例了解schema 什么是schema schema一词起源于希腊语中的form或figure,但具体应该 ...
- 【freertos】008-内存管理
前言 本章主要讲解内部存储空间(RAM)的管理. 详细分析heap5方案. 参考: 李柱明博客 https://freertos.blog.csdn.net/article/details/51606 ...
- c# 简单的滑动图片验证
普通的验证码对用户使用体验不友好,出现了滑动图片验证的验证方式,用户只要按住滑块完成图片的拼接即可通过验证(这是最简单的方式,滑动轨迹,数据分析,滑行速度 什么的暂没考虑) 主要的实现思路: 1.先从 ...
- HashMap 中的 hash 函数
1. 什么是 hash 函数 hash 函数,即散列函数,或叫哈希函数.它可以将不定长的输入,通过散列算法转换成一个定长的输出,这个输出就是散列值.需要注意的是,不同的输入通过散列函数,也可能会得到同 ...
- 【原创】项目三Raven-2
实战流程 1,C段扫描,并发现目标ip是192.168.186.141 nmap -sP 192.168.186.0/24 扫描目标主机全端口 nmap -p- 192.168.186.141 访问8 ...
- 记录bug的贴子
这个贴子用来记录一些,平时关注新闻,暴露出来的bug,引以为戒. 2019/01/21 - 拼多多出现大量100元无门槛券 关键词: 风险控制:羊毛党: https://www.zhihu.com/q ...
- Elasticsearch学习系列二(基础操作)
本文将分为3块讲解Es的基础操作.分别为:索引(index).映射(mapping).文档(document). 索引操作 创建索引库 语法: PUT /索引名称{ "settings&qu ...
- NLog自定义Target之MQTT
NLog是.Net中最流行的日志记录开源项目(之一),它灵活.免费.开源 官方支持文件.网络(Tcp.Udp).数据库.控制台等输出 社区支持Elastic.Seq等日志平台输出 实时日志需求 在工业 ...
- Python基础学习笔记_01
Python的介绍 1989年圣诞节创造,1991年正真出生,目前更新到3.0版本 具有最庞大的"代码库",人称"胶水语言",无所不能 一种跨平台的计算机程序设 ...