为什么java.util.function没有为所有原始类型定义专用的功能接口?

Pao*_*oni 6 java functional-programming java-8

Java 8在包中提供了几个功能接口java.util.function.

对于每个基本函数(函数,消费者,谓词,供应商......),还有其他定义的类型参数专用于以下基本类型:double,int,long.

这个问题是关于这种接口的动机:为什么在Java 8中存在像DoubleFunction这样的原始函数

但为什么不覆盖所有原始类型(例如浮点数丢失)?

Mar*_*nik 10

这是为了防止API大小爆炸而决定的.被迫引入原始专业化已经是一个痛点,因此妥协只是专注于基本类型,它们是longdouble,以及int最重要的原始类型:数组索引的类型和整数文字.所有其他类型都可以升级为这些类型.

lambda-dev邮件列表中的这篇文章中,您可以阅读Brian Goetz的官方声明.