为什么 LongSummaryStatistics
实现了 IntConsumer
而 IntSummaryStatistics
也实现了 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/