我想对所有数字集合进行总和。但我想指出返回号码类型。例如,我想做一个双集合的总和,但我想取回一个整数。我想要这样的 SumAggregator。这是我开发的代码,但我有一个 Cast 问题。
public class SumAggregator<N1 extends Number, N2 extends Number> {
public SumAggregator() {
}
public N2 sum(Collection<? extends N1> list){
Double sum = 0;
for(Number n : list){
sum += n.doubleValue();
}
return (N2) sum;
}
}
如果我想这样做,SumAggregator<Double, Double>
我没有任何问题。但是如果我想这样做SumAggregator<Double, Integer>
,一旦我运行,我会得到以下异常:
java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.Integer
知道如何解决这个问题吗?