LongSummaryStatistics
реализует IntConsumer
для того, чтобы он мог принимать значения int
, а также значения long
.
Например, это позволяет передать его методу, требующему IntConsumer
для абстрактного потребления int
данных:
LongSummaryStatistics lss = new LongSummaryStatistics();
someMethod(lss);
void someMethod(IntConsumer consumer) { ... }
Нет реальной причины, по которой LongSummaryStatistics
нельзя использовать для этой цели: int
всегда можно расширить до long
без потерь.Однако система типов не позволяет использовать lss
в качестве параметра для someMethod
, если LongSummaryStatistics
не реализует IntConsumer
напрямую.
Правда, вы можете сделать это без реализации интерфейса, используялямбда:
someMethod(i -> lss.consume(i));
, но немного лучше использовать ссылку напрямую.