java - 为什么 java.util.function 不为所有原始类型定义专门的功能接口(interface)?

标签 java functional-programming java-8

Java 8 在包 java.util.function 中提供了几个函数式接口(interface).

对于每个基本函数(Function、Consumer、Predicate、Supplier...),还有其他定义,其中类型参数专用于以下原始类型:double、int、long。

这个问题是关于此类接口(interface)的动机:Why are there primitive functions like DoubleFunction in Java 8

但为什么没有涵盖所有基本类型(例如缺少 float)?

最佳答案

这是为了防止 API 大小爆炸而做出的决定。被迫完全引入原始特化已经是一个痛点,因此妥协是只特化基本类型,即 longdouble,另外还为 int 作为最突出的原始类型:数组索引和整数文字的类型。所有其他类型都可以提升为这些类型。

this postlambda-dev 邮件列表中,您可以阅读 Brian Goetz 的官方声明。

关于java - 为什么 java.util.function 不为所有原始类型定义专门的功能接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24692472/

相关文章:

for-loop - F# 嵌套 for 循环中的编译错误,语法冗长

Java8 - 文本不显示在 TextArea 中

java - 如何使用 jstat 获取非堆 "code cache"详细信息

java - Bson - 如何将 JSON 转换为 List<Document> 并将 List<Document> 转换为 JSON?

c++ - 理解和使用 Boost Phoenix 库,重点放在惰性求值上

kotlin - 在 Kotlin 中以纯函数式编程风格在 O(n) 时间内计算所有前缀和

java - JAXB 可以处理 java.time 对象吗?

java - Apple Silicon(M1) 11.4 出现 java 错误 (jdk16)

java - 查找包含给定单词的句子的最短部分

java.lang.ClassNotFoundException : org. apache.struts.taglib.bean.CookieTei