<分区>
同样,我们有Int*
、Double*
、Long*
对应Function
的不同接口(interface), Supplier
,Predicate
。
在我看来,使用这些特殊接口(interface)的唯一好处是让代码更具可读性,并强制其客户端仅使用特定类型作为输入。
但除此之外,我是否遗漏了其他一些用例?
<分区>
同样,我们有Int*
、Double*
、Long*
对应Function
的不同接口(interface), Supplier
,Predicate
。
在我看来,使用这些特殊接口(interface)的唯一好处是让代码更具可读性,并强制其客户端仅使用特定类型作为输入。
但除此之外,我是否遗漏了其他一些用例?
最佳答案
这些接口(interface)的目标是允许直接使用原始类型。这节省了自动装箱和自动拆箱,因此使这些接口(interface)(以及依赖于它们的相关 IntStream
、LongStream
和 DoubleStream
)更加高效。
例如,不使用 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/