Java BiConsumer源码总结 BiConsumer接口注释翻译和解析中英文对照版
BiConsumer函数式接口源码重点
1.BiConsume是一个函数式接口,里面只有一个需要实现的方法是 void accept(T t, U u),表示一个接受两个输入参数但不返回结果的操作,通常用于处理键值对,key是一个参数,值是一个参数,BiConsumer函数式接口与Consumer函数式接口的区别是Consumer的void accept(T t),表示一个接受单个输入参数但不返回结果的操作,Consumer源码可以看我这篇文章 Consumer
2.BiConsumer<T, U> andThen(BiConsumer<? super T, ? super U> after)用于拼接多个BiConsumer的accept(T t, U u)方法,按顺序执行操作,如果前面的操作抛出异常,则后面的操作不会执行
3.Consumer接口方法
方法名 | 作用 |
---|---|
void accept(T t, U u) | 表示一个接受两个输入参数但不返回结果的操作 |
default BiConsumer andThen(BiConsumer after) | 返回一个组合的新BiConsumer,在新的BiConsumer会先对两个参数此BiConsumer的accept操作再执行after中的accept操作 |
BiConsumer函数式接口源码
package java.util.function;import java.util.Objects;/*** Represents an operation that accepts two input arguments and returns no* result. This is the two-arity specialization of {@link Consumer}.* Unlike most other functional interfaces, {@code BiConsumer} is expected* to operate via side-effects.* 表示接受两个输入参数但不返回结果的操作。这是Consumer的两个算术特化。* 与大多数其他功能接口不同,BiConsumer预期通过副作用运行。** <p>This is a <a href="package-summary.html">functional interface</a>* whose functional method is {@link #accept(Object, Object)}.* 这是一个函数接口,其函数方法是accept(Object, Object)* * @param <T> the type of the first argument to the operation* @param <U> the type of the second argument to the operation** @see Consumer* @since 1.8*/
@FunctionalInterface
public interface BiConsumer<T, U> {/*** Performs this operation on the given arguments.* 对给定参数执行此操作。** @param t the first input argument* @param u the second input argument*/void accept(T t, U u);/*** Returns a composed {@code BiConsumer} that performs, in sequence, this* operation followed by the {@code after} operation. If performing either* operation throws an exception, it is relayed to the caller of the* composed operation. If performing this operation throws an exception,* the {@code after} operation will not be performed.* 返回一个组合的BiConsumer,它依次执行此操作和after操作。* 如果执行任何一个操作都会引发异常,则会将异常转发给组合操作的调用方。* 如果执行此操作引发异常,则不会执行after操作。** @param after the operation to perform after this operation* @return a composed {@code BiConsumer} that performs in sequence this* operation followed by the {@code after} operation* @throws NullPointerException if {@code after} is null*/default BiConsumer<T, U> andThen(BiConsumer<? super T, ? super U> after) {Objects.requireNonNull(after);return (l, r) -> {accept(l, r);after.accept(l, r);};}
}
Java BiConsumer源码总结 BiConsumer接口注释翻译和解析中英文对照版相关推荐
- Java Spliterator接口总结 Spliterator接口注释翻译和解析中英文对照版
Spliterator接口重点 Spliterator接口是迭代器Iterator改版,只不过Spliterator可以并行的遍历元素,但是Spliterator不是线程安全的,并行的关键在于 try ...
- Java Comparator源码总结 Comparator源码注释翻译和解析中英文对照版
版本 JDK8(JDK1.8) Comparator接口重点 1.Comparator接口是一个函数式接口,里面只有一个虚方法compare(T o1, T o2),该接口表示一个比较器,而实现Com ...
- Java ReentrantLock源码总结 ReentrantLock源码注释翻译和解析中英文对照版 AQS虚拟类的实现
文章目录 ReentrantLock类源码重点 具体实现 lock操作 acquire操作 tryAcquire操作 公平锁版本 非公平锁版本 lockInterruptibly操作 acquireI ...
- java方法注释都英文_JDK源码中的英文注释翻译(Class)
public final class Class implements java.io.Serializable, GenericDeclaration, Type, AnnotatedElement ...
- 阿里api网关接口客户端demo,java实现源码,其他语言可参考
访问阿里api网关接口客户端demo,java实现源码,其他语言可参考 上一篇文章 <阿里api网关接口创建.发布.授权.调试> 中,介绍了3个典型接口的创建并在阿里控制台调试完成,地址: ...
- Java集合源码分析(二)ArrayList
ArrayList简介 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存. ArrayList不是线程安全的,只能用在单线程环境下,多线 ...
- 程序兵法:Java String 源码的排序算法(一)
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 这是泥瓦匠的第103篇原创 <程序兵法:Java Str ...
- Java Executor源码解析(3)—ThreadPoolExecutor线程池execute核心方法源码【一万字】
基于JDK1.8详细介绍了ThreadPoolExecutor线程池的execute方法源码! 上一篇文章中,我们介绍了:Java Executor源码解析(2)-ThreadPoolExecutor ...
- Redis源码和java jdk源码中hashcode的不同实现
一.redis实际上是使用了siphash 这个比较简单,我说的简单是指redis代码比较少不像jdk一样调用C++代码调用栈非常深. 先看这个rehashing.c 主要就是dictKeyHash函 ...
最新文章
- 《学习opencv》笔记——矩阵和图像处理——cvMinManLoc,cvMul,cvNot,cvNorm and cvNormalize...
- [转载] 杜拉拉升职记——07 管理者关心细节吗?
- session每次请求都是新建的吗_每次去火车站都是提心吊胆,感觉就像进了贼窝一样,有同感的吗?...
- 如何摆脱JavaFX中的重点突出显示
- android游戏编程之从零开始_纯C语言程序员写的编程新手入门基础小游戏之最炫酷推箱子...
- CSS3特效 - 会呼吸的button按钮
- 微软正式推出 gRPC-Web for .NET
- 【Oracle】ERROR: ORA-28000: the account is locked
- 110. PHP 读取 ini ,ftp 上传
- Pandas读取excel中的数据,并利用现有列数据生成新列
- 实习成长之路——设计模式四:什么是单一职责原则,如何判定某个类的职责是否够“单一”?
- Androidstudio 里面的app下目录介绍
- 5个常用的CMD命令盘点
- C语言宏定义(常用宏定义)
- 2019超导量子计算机最新报道,在高温超导体加持下,量子效应的量子计算机,或将迎来重大突破...
- 你是如何坚持读完《算法导论》这本书的?
- 用python来画出高光谱遥感影像的3D立体图
- 三菱5uplc伺服电机指令_三菱伺服放大器内部故障及处理方法
- 越狱设备如何安装“AFC2”补丁?
- @程序员,你真TM需要培养一个兴趣爱好