数値のリストの合計集計を行いたい。さまざまな集計関数を使用するため、ジェネリックを使用したいと思います。
これは私がしたいことです(もっと少ない):
SumAggregator<Double, Double> sumAggregatorDouble = new SumAggregator<>();
Double sumDouble = AggregatorUtils.aggregate(elements, sumAggregatorDouble);
SumAggregator<Integer, Integer> sumAggregatorInteger = new SumAggregator<>();
Integer sumInteger = AggregatorUtils.aggregate(elements, sumAggregatorInteger);
MinAggregator<Integer, Integer> minAggregatorInteger = new MinAggregator<>();
Integer minInteger = AggregatorUtils.aggregate(elements, minAggregatorInteger);
から実装するすべてのクラスAggregator
からのインターフェイスが必要です。Aggregator
私はこれを行うことができますか?誰かがそれを行う方法、または私が望むことを行うためのより良い方法を知っているかもしれません。
編集:これは私が試したことです
public class SumAggregator<I extends Number, O extends Number> implements Aggregator<I, O> {
// Attributes
private O count;
// Constructors
public SumAggregator() {
this.count = 0.0;
}
@Override
public O apply(I input) {
count = count + input; // The operator + is undefined for the argument type(s) Double, I
return count; // Error: Type mismatch
}
@Override
public O getResult() {
return count; // Error: Type mismatch
}
}