有人告訴我,諸如此類的原始類型int沒有方法。.getClass().getName()當用于類型變量int并返回包裝類“ ”時,它是如何工作的Integer?這是自動拳擊的例子嗎?int重要提示:這似乎只在將變量傳遞到泛型類時對我有用。然后從 main 方法調用泛型類中的方法。我正在使用這個通用類:public class gen< T > { private T thing; public gen(T thing) { this.thing = thing; } public String varType() { return thing.getClass().getName(); }}public class Driver() { int i = 5; gen g = new gen(i); System.out.println(g.getType());}輸出是:java.lang.Integer有人可以解釋一下這個過程的內部運作嗎?像這樣的事情是行不通的:public static void main(String args[]) { int i = 5; i.getClass().getName();}
1 回答

慕桂英4014372
TA貢獻1871條經驗 獲得超13個贊
例如,通用類型參數T
不能是原語。對于原始類型,您可以使用相應的包裝類。更具體地說,T
不能int
。
在您的情況下,編譯器會在調用中自動將值裝箱為int
an?。Integer
new gen(i)
注 1:?gen
和new gen
是原始泛型,因為您省略了類型參數。不要使用原始仿制藥。再說了,如果你忽略它們又有什么意義呢?
注2:?Java命名規范是類名以大寫字母開頭,所以類應該命名為Gen
,而不是gen
。
添加回答
舉報
0/150
提交
取消