代码之家  ›  专栏  ›  技术社区  ›  Oleg Vazhnev

为什么ToDoubleBiFunction不扩展BiFunction[duplicate]

  •  0
  • Oleg Vazhnev  · 技术社区  · 6 年前

    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 .

    使用wordy还有什么意义 applyAsDouble 方法而不是众所周知的 apply

    1 回复  |  直到 6 年前
        1
  •  4
  •   Jesper    6 年前

    具体版本的观点 BiFunction 例如 ToDoubleBiFunction 是为了避免 auto(un)boxing double 值到/来自 java.lang.Double

    如果 双功能 会延伸 BiFunction<T, U, Double> 那你就有自动拳击了。

    BiFunction<T, U, double> (注意 是这里的基元类型)是不可能的。