繰り返す必要のある2つの異なるタイプのセットがあり、セットのオブジェクトの値の1つを合計する必要があります。ジェネリックスでこれを行うにはどうすればよいですか?つまり、セットのタイプごとに2つの合計メソッドを記述しませんか?
private Double calculateFooScoreSum(final Set<Foo> fooScoreSet)
{
Double sum = 0.0;
for (final Foo score : fooScoreSet)
{
sum += score.getScore();
}
return sum;
}
private Double calculateBarScoreSum(final Set<Bar> barScoreSet)
{
Double sum = 0.0;
for (final Bar score : barScoreSet)
{
sum += score.getScore();
}
return sum;
}
Genericsを1つのメソッドとして使用して、上記の2つのメソッドを作成するにはどうすればよいですか。何かのようなもの:
private static Double calculateScoreSum(Set<?> scoreSet)
{
Double sum = 0.0;
for(Object scoreObj : scoreSet){
//Some casting magic
sum+=score.getScore();
}
return sum;
}
それが役立つ場合、getScore()
メソッドはクラスFoo
との両方に存在しBar
ます。どんなアイデアや提案も大歓迎です。ありがとう