gpt4 book ai didi

java - 为什么 Java 8 中没有原始的 BiConsumer?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:32:28 26 4
gpt4 key购买 nike

我是 Java 8 的新手,我找不到任何原始的 BiConsumer(IntBiConsumer 等),但是有一个 ToIntBiFunction,它是 BiFunction 的原始特化。还有一个与 ToIntBiFunction 相同的 IntBinaryOperator。

BiConsumer<Integer,String> wrappedBiConsumer = (i,s) -> System.out.printf("Consume %d %s \n",i,s);
ToIntBiFunction<String,String> toIntFunction = (a,b) -> a.length()* b.length();
  1. Oracle 没有为 Java8 提供 IntBiConsumer 有什么原因吗?
  2. 为什么有两个接口(interface),如“IntBinaryOperator”和“ToIntBiFunction”,而不是只有一个接口(interface),如“IntBiFunction”? (如果它们用于不同的目的,它们仍然可以从同一个父 IntBiFunction 扩展)

我很确定他们这样设计是有充分理由的,请让我理解。

最佳答案

实际上,Java 中有一个ObjIntConsumer,它是BiConsumer 的部分int 特化。因此,您的第一个示例可以重写为:

ObjIntConsumer<String> consumer = (s, i) -> System.out.printf("Consume %d %s%n", i, s);

关于java - 为什么 Java 8 中没有原始的 BiConsumer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42476517/

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