为什么 LongSummaryStatistics 实现 IntConsumer?

2022-09-03 14:34:25

为什么在有哪个也实现的时候实现?LongSummaryStatisticsIntConsumerIntSummaryStatisticsIntConsumer


答案 1

LongSummaryStatistics实现,以便它可以接受值和值。IntConsumerintlong

例如,这允许您将其传递给需要 的方法,以便抽象地使用一些数据:IntConsumerint

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

void someMethod(IntConsumer consumer) { ... }

没有真正的理由为什么a不应该用于此目的:总是可以扩大到没有损失。但是,除非直接实现,否则类型系统不允许用作参数。LongSummaryStatisticsintlonglsssomeMethodLongSummaryStatisticsIntConsumer

没错,您可以在不实现接口的情况下使用 lambda 执行此操作:

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

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


答案 2

推荐