1

数値のリストの合計集計を行いたい。さまざまな集計関数を使用するため、ジェネリックを使用したいと思います。

これは私がしたいことです(もっと少ない):

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 
    }
}
4

0 に答える 0