为什么java.util.function不';是否为所有基本类型定义专门的功能接口?

为什么java.util.function不';是否为所有基本类型定义专门的功能接口?,java,functional-programming,java-8,Java,Functional Programming,Java 8,Java8在包中提供了几个功能接口 对于每个基本函数(函数、使用者、谓词、提供者…),还有其他定义,其中类型参数专用于以下基本类型:double、int、long 这些问题与此类接口的动机有关: 但是为什么不覆盖所有的基元类型(例如,float丢失)?这是为了防止API大小爆炸而决定的。被迫引入原语专门化已经是一个难点,因此折衷办法是只专门化基本类型,即long和double,另外还专门化int作为最突出的原语类型:数组索引和整数文本的类型。所有其他类型都可以升级为这些类型 在lambda de

Java8在包中提供了几个功能接口

对于每个基本函数(函数、使用者、谓词、提供者…),还有其他定义,其中类型参数专用于以下基本类型:double、int、long

这些问题与此类接口的动机有关:


但是为什么不覆盖所有的基元类型(例如,float丢失)?

这是为了防止API大小爆炸而决定的。被迫引入原语专门化已经是一个难点,因此折衷办法是只专门化基本类型,即
long
double
,另外还专门化
int
作为最突出的原语类型:数组索引和整数文本的类型。所有其他类型都可以升级为这些类型

在lambda dev邮件列表中,您可以阅读Brian Goetz的官方声明