java - 在 Java 中,像 IntFunction、LongFunction 这样的特殊接口(interface)有什么用?

标签 java java-8

<分区>

同样,我们有Int*Double*Long*对应Function的不同接口(interface), SupplierPredicate

在我看来,使用这些特殊接口(interface)的唯一好处是让代码更具可读性,并强制其客户端仅使用特定类型作为输入。

但除此之外,我是否遗漏了其他一些用例?

最佳答案

这些接口(interface)的目标是允许直接使用原始类型。这节省了自动装箱和自动拆箱,因此使这些接口(interface)(以及依赖于它们的相关 IntStreamLongStreamDoubleStream)更加高效。

例如,不使用 Function<Integer,R>有一个接受 Integer 的方法并产生 R 类型的结果, 你使用 IntFunction<R>有一个方法接受 int并产生 R 类型的结果.如果你传递一个 int对于该函数,您可以避免在传递相同的 int 时发生的装箱到 Function<Integer,R>的方法。

关于java - 在 Java 中,像 IntFunction、LongFunction 这样的特殊接口(interface)有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48665012/

相关文章:

java - Java 中使用 2D ArrayList 的矩阵乘法

java - 如何在下拉列表中显示默认选项

java - 使用 EWS Java API 检索预约的账单信息

java - 在 Java 8 中收集列表

Java并发,什么情况下CompletableFuture.supplyAsync()会返回null

java - 在java中将字符串日期时间转换为日期?

java - Eclipse 中的 JiBX 绑定(bind) DTD 模式

Java - 如何仅使用 JVM Config 为某些协议(protocol)禁用 TLS 密码?

java-8 - 在 Java 8 中使用::new 初始化时如何将参数传递给类构造函数

嵌套级别的 Java 8 流优化