我有两种不同类型的集合需要迭代,并且集合对象的值之一需要求和。我如何使用泛型来做到这一点,即不为每种类型的 Set 编写两个求和方法?
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;
}
如何使用泛型作为单一方法编写上述两种方法。就像是:
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
. 任何想法和建议都非常感谢。谢谢