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接口注释翻译和解析中英文对照版相关推荐

  1. Java Spliterator接口总结 Spliterator接口注释翻译和解析中英文对照版

    Spliterator接口重点 Spliterator接口是迭代器Iterator改版,只不过Spliterator可以并行的遍历元素,但是Spliterator不是线程安全的,并行的关键在于 try ...

  2. Java Comparator源码总结 Comparator源码注释翻译和解析中英文对照版

    版本 JDK8(JDK1.8) Comparator接口重点 1.Comparator接口是一个函数式接口,里面只有一个虚方法compare(T o1, T o2),该接口表示一个比较器,而实现Com ...

  3. Java ReentrantLock源码总结 ReentrantLock源码注释翻译和解析中英文对照版 AQS虚拟类的实现

    文章目录 ReentrantLock类源码重点 具体实现 lock操作 acquire操作 tryAcquire操作 公平锁版本 非公平锁版本 lockInterruptibly操作 acquireI ...

  4. java方法注释都英文_JDK源码中的英文注释翻译(Class)

    public final class Class implements java.io.Serializable, GenericDeclaration, Type, AnnotatedElement ...

  5. 阿里api网关接口客户端demo,java实现源码,其他语言可参考

    访问阿里api网关接口客户端demo,java实现源码,其他语言可参考 上一篇文章 <阿里api网关接口创建.发布.授权.调试> 中,介绍了3个典型接口的创建并在阿里控制台调试完成,地址: ...

  6. Java集合源码分析(二)ArrayList

    ArrayList简介 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存. ArrayList不是线程安全的,只能用在单线程环境下,多线 ...

  7. 程序兵法:Java String 源码的排序算法(一)

    摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 这是泥瓦匠的第103篇原创 <程序兵法:Java Str ...

  8. Java Executor源码解析(3)—ThreadPoolExecutor线程池execute核心方法源码【一万字】

    基于JDK1.8详细介绍了ThreadPoolExecutor线程池的execute方法源码! 上一篇文章中,我们介绍了:Java Executor源码解析(2)-ThreadPoolExecutor ...

  9. Redis源码和java jdk源码中hashcode的不同实现

    一.redis实际上是使用了siphash 这个比较简单,我说的简单是指redis代码比较少不像jdk一样调用C++代码调用栈非常深. 先看这个rehashing.c 主要就是dictKeyHash函 ...

最新文章

  1. 《学习opencv》笔记——矩阵和图像处理——cvMinManLoc,cvMul,cvNot,cvNorm and cvNormalize...
  2. [转载] 杜拉拉升职记——07 管理者关心细节吗?
  3. session每次请求都是新建的吗_每次去火车站都是提心吊胆,感觉就像进了贼窝一样,有同感的吗?...
  4. 如何摆脱JavaFX中的重点突出显示
  5. android游戏编程之从零开始_纯C语言程序员写的编程新手入门基础小游戏之最炫酷推箱子...
  6. CSS3特效 - 会呼吸的button按钮
  7. 微软正式推出 gRPC-Web for .NET
  8. 【Oracle】ERROR: ORA-28000: the account is locked
  9. 110. PHP 读取 ini ,ftp 上传
  10. Pandas读取excel中的数据,并利用现有列数据生成新列
  11. 实习成长之路——设计模式四:什么是单一职责原则,如何判定某个类的职责是否够“单一”?
  12. Androidstudio 里面的app下目录介绍
  13. 5个常用的CMD命令盘点
  14. C语言宏定义(常用宏定义)
  15. 2019超导量子计算机最新报道,在高温超导体加持下,量子效应的量子计算机,或将迎来重大突破...
  16. 你是如何坚持读完《算法导论》这本书的?
  17. 用python来画出高光谱遥感影像的3D立体图
  18. 三菱5uplc伺服电机指令_三菱伺服放大器内部故障及处理方法
  19. 越狱设备如何安装“AFC2”补丁?
  20. @程序员,你真TM需要培养一个兴趣爱好

热门文章

  1. 什么是vuex?vuex的工作流程?
  2. java使用rocketMq
  3. html语言中mouse over,javascript中mouseover、mouseout使用详解_javascript技巧-js教程
  4. ECharts数据可视化折线图
  5. 拯救者Y9000P突然很卡
  6. Java开发:GUI编程
  7. Java爬虫下载千张美女图片
  8. Systick滴答定时器解析
  9. 稻田车载式表型观测系统的设计与分析(论文笔记)
  10. 兔狗家装节·中国梦想家登陆北京后首秀成功