3
我有兩種不同類型的需要迭代的集合,並且需要對集合中的對象的值之一進行求和。我怎麼能用泛型來做到這一點,即不用爲每種類型的集合編寫兩個求和方法?在循環中鑄造泛型Java 7
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
。 任何想法和建議,非常感謝。 感謝名單
另外,沒有理由將總和聲明爲「雙」對象。原始類型可以正常工作。 – LanguagesNamedAfterCofee
@LanguagesNamedAfterCofee:的確,這只是複製了OP的原始結構。 –
@JoãoSilva非常感謝你。這也解決了許多其他更大的問題。 – Panshul