in core/src/main/java/org/apache/rocketmq/streams/core/function/supplier/SumAggregate.java [31:49]
public Number calculate(K key, V value, Number accumulator) {
Number number = selectAction.select(value);
if (accumulator == null) {
accumulator = number;
return accumulator;
}
if (number instanceof Integer) {
return accumulator.intValue() + number.intValue();
} else if (number instanceof Long) {
return accumulator.longValue() + number.longValue();
} else if (number instanceof Double) {
return accumulator.doubleValue() + number.doubleValue();
} else if (number instanceof Float) {
return accumulator.floatValue() + number.floatValue();
} else {
throw new UnsupportedOperationException("unsupported number type:" + number.getClass().getName());
}
}