gpt4 book ai didi

java - 为什么 Java 8 中有像 DoubleFunction 这样的原始函数

转载 作者:太空宇宙 更新时间:2023-11-04 10:45:02 24 4
gpt4 key购买 nike

我刚刚了解了新的 Java 8 function package并想知道为什么会有这样的接口(interface)

  • DoubleFunction
  • IntFunction
  • LongFunction
  • ...

扩展 Function 。这是否意味着我将无法通过 Function<T,Int>其中 IntFunction<T>是必需的,反之亦然?这同样适用于 *Block , *Supplier*UnaryOperator .

我可以看到我不必检查 null 的优势当返回一个原语时,但缺点列表似乎更长

最佳答案

此问题与Java中的原始类型未统一可替代Object有关。 ,以及泛型类型删除。

使用Function<T, Integer>而不是IntFunction<T>当最后一个就足够了时,有两个缺点:

  • 每个返回 int被装箱 - 意味着更大的内存占用;
  • 每个返回 Integer获得自动运行时检查(可以优化,但是是的......);

请注意,Java 中集合框架的此类问题导致人们编写了一个名为 Trove 的完整库,该库避开通用接口(interface),转而为每种原始类型提供专门的集合类型。

关于java - 为什么 Java 8 中有像 DoubleFunction 这样的原始函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48508170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com