gpt4 book ai didi

java - 为什么 ToDoubleBiFunction 不扩展 BiFunction

转载 作者:行者123 更新时间:2023-12-01 17:48:53 25 4
gpt4 key购买 nike

我想知道为什么ToDoubleBiFunction不扩展BiFunction 。我就是这么做的:

import java.util.function.BiFunction;

public class Test {
public static void main(String[] args) {
MyToDoubleBiFunction<Integer, Integer> f = (a, b) -> a.doubleValue() + b.doubleValue();
System.out.println(f.apply(1, 2));
}
}

@FunctionalInterface
interface MyToDoubleBiFunction<T, U> extends BiFunction<T, U, Double> {
}

此代码有效并打印 3.0 .

还有,使用罗嗦applyAsDouble有什么意义呢?方法而不是众所周知的apply

最佳答案

BiFunction具体版本要点如ToDoubleBiFunction是要避免auto(un)boxing - 在这种情况下,自动装箱/取消装箱原语 doublejava.lang.Double 之间的值对象。

如果ToDoubleBiFunction将延长BiFunction<T, U, Double>那么你就会有自动(取消)装箱。

请注意,您不能在 Java 中使用基本类型作为类型参数,因此 BiFunction<T, U, double> (注意 double 是这里的原始类型)是不可能的。

关于java - 为什么 ToDoubleBiFunction 不扩展 BiFunction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52544476/

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