2014-02-23 170 views
1

我有一個泛型類型的數組列表,我試圖創建一個方法來計算平均值,但我不能添加一個泛型沒有先投它,但我想要傳入整數或雙我怎麼能這樣做?添加泛型類型對象

private ArrayList<T> grades; 

public double computeAverage() 
{ 
    double average = 0; 
    double sum = 0; 

    for (int i = 0; i < grades.size(); i++) { 
     sum = sum + grades.get(i); <<< ERROR 
    } 

    average = sum/grades.size(); 

    return average; 

} 

錯誤:運營商+未定義的參數類型雙, 牛逼

+1

什麼是你的錯誤?另外,顯示你如何定義「成績」。 – Makoto

+0

好的,我很高興你向我們展示了你的錯誤。現在,是在班級宣佈'T'嗎?你如何實例化這個對象的實例? – Makoto

+0

@Makoto我想這裏的信息並不重要。顯然,我們不能使用類型爲'T'的'+'運算符。 –

回答

8

不過,您的編輯,它不清楚是什麼T是後。如果你能夠將它縮小到Number(這是IntegerDouble如你所提到的超類),下面的工作:

List<Number> numbers = new ArrayList<Number>(); 

for (Number number : numbers) { 
    sum += number.doubleValue(); 
} 
+0

@ElliottFrisch固定,謝謝:) – qqilihq