JAVA8 BiFunction接口用于解耦
接口 用于 java8
2023-09-14 09:14:05 时间
先看源码
@FunctionalInterface
public interface BiFunction<T, U, R> {
/**
* 输入两个参数, 类型分别是T和U, 返回一个结果, 类型为R
* @param t 函数第一个输入参数
* @param u 第二个输入参数
* @return 返回结果
*/
R apply(T t, U u);
/**
* 传入一个Function类型,该Function类型输入参数为R, 返回结果类型为V
* 当前BiFunction的apply函数输入参数类型为T, U; 返回结果类型为R
* 将两个参数组合之后返回一个新的BiFunction方法, 输入参数是T,U,返回结果类型为V
* 简单来说就是当前的BiFunction是(T, U) -> R, 传入的Function是R -> V
* 所以组合后的新的Function是(T, U) -> V, 即把BiFunction的返回结果作为入参再传入Function中
*/
default <V> BiFunction<T, U, V> andThen(Function<? super R, ? extends V> after) {
Objects.requireNonNull(after);
return (T t, U u) -> after.apply(apply(t, u));
}
}
apply()方法例子:
@Slf4j
public class BiFunctionTest {
public static void main(String[] args) {
test((processId, status) -> {
log.info(">>>>>>>main");
int result = Integer.parseInt(processId) + status;
return result;
});
}
private static void test(BiFunction<String, Integer, Integer> callback) {
log.info(">>>>>>>test");
Integer apply = callback.apply("1", 2);
log.info(">>>>>>>{}", apply);
}
}
打印结果:
21:25:34.650 [main] INFO com.ceam.data.tree.common.function.bifunction.BiFunctionTest - >>>>>>>test
21:25:34.652 [main] INFO com.ceam.data.tree.common.function.bifunction.BiFunctionTest - >>>>>>>main
21:25:34.652 [main] INFO com.ceam.data.tree.common.function.bifunction.BiFunctionTest - >>>>>>>3
总结:
可以把一个大的方法分割为两个,或者把模块分割降低耦合,两者还是存在依赖的。
如果对你有帮助帮忙点个赞哈
相关文章
- 澳大利亚科学家开发出可用于脑机接口的新型碳基生物传感器
- 使用脑机接口从神经信号中重建单词
- Golang语言 Gin框架环境配置、报错处理、接口调用、配置和日志管理|Go主题月
- ucosiii应用举例_SATA III接口
- 重磅推荐!12.2K标星的免费接口合集,API的搬运工,开发者的福利!
- LyScriptTools 反汇编类API接口手册
- Nginx 查看接口请求内容
- 颅内EEG数据可用于开发语音脑机接口和语音神经假肢
- 这个脑机接口实现每分钟超60个单词的意念说话
- vue.js客服系统实时聊天项目开发(八)使用axios post请求访客初始化接口
- java同一秒内调用接口如何避免重复操作
- JavaSE抽象类和接口
- 脑机接口人体实验首度成功,它用 50 年把科幻电影变为现实
- 科学家开发出可以极大改善脑机接口的微小植入物
- java后台调用HttpURLConnection类模拟浏览器请求实例(可用于接口调用)
- Go语言中的方法、接口和嵌入类型详解