可能重複:
Why don't Generics support primitive types?爲什麼我們不能使用double作爲泛型T?
爲什麼我們不能用double
爲T
,相反,我們必須使用雙?
如果使用列表
可能重複:
Why don't Generics support primitive types?爲什麼我們不能使用double作爲泛型T?
爲什麼我們不能用double
爲T
,相反,我們必須使用雙?
如果使用列表
泛型類型參數必須是子類的java.lang.Object
我們會有編譯錯誤。
雙重不是一個對象,你可以使用雙
double
是Java primitive data type
,而泛型類型需要一個java.lang.Object
,並且Double
是一個對象
T必須爲非原始數據類型。看起來似乎很不方便,但有自動裝箱,也就是說你可以有這樣的東西:
List<Double> list = new ArrayList<Double>();
double x = 5.0d;
list.add(x);
double y = list.get(0);
與@LingwkCn的回答一樣:這根本不回答問題。它說明了「什麼」(OP似乎已經找到了),而不是「爲什麼」。 -1 –
+1。另請參閱http://download.oracle.com/javase/tutorial/java/generics/gentypes.html(它特別提到您不能使用原語)。 –
@Rachel我認爲OP理解泛型不能是原語。問題是:_why不是嗎?_ –
這是一個怎樣的答案?它沒有解釋爲什麼,OP已經知道他必須用'Double'來代替。 –