gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 00:43:52 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/14850879/

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