java - LongSummaryStatistics 为什么要实现 IntConsumer?

标签 java java-8 java-stream

为什么 LongSummaryStatistics 实现了 IntConsumerIntSummaryStatistics 也实现了 IntConsumer

最佳答案

LongSummaryStatistics工具 IntConsumer为了它可以接受 int值以及 long值(value)观。

例如,这允许您将其传递给需要 IntConsumer 的方法为了消耗一些int数据抽象:

LongSummaryStatistics lss = new LongSummaryStatistics();
someMethod(lss);

void someMethod(IntConsumer consumer) { ... }

LongSummaryStatistics 没有真正的原因不应该用于此目的:int总是可以扩大到 long没有损失。但是,类型系统不允许 lss用作 someMethod 的参数除非LongSummaryStatistics已实现 IntConsumer直接。

是的,您可以在不实现接口(interface)的情况下使用 lambda 执行此操作:

someMethod(i -> lss.consume(i));

但直接使用引用会更整洁一些。

关于java - LongSummaryStatistics 为什么要实现 IntConsumer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54003796/

相关文章:

java - 在 iText 中合并两个模板

java - CompletableFuture, thenCompose 方法

java - 用于查看编年史队列/ map 内容的 UI/实用程序

java - 抽象类的实例化

java - Java 8 和 11 之间的流差异

java - 适用于 Android 和 GSON 的 ProGuard

Java - 两条线的碰撞检测

java - 使用 RestTemplate 异常处理的 Spring 端点到端点

java - 使用 Java Streams 返回单词出现的句子计数和列表

java - 当任何匹配值时返回匹配枚举