2012-04-17 54 views
1

這兩者有什麼區別?原始類型不能有「Class」,可以 - 它是原始的。沒有課堂上有課堂。Integer.class和Integer.TYPE之間的區別

這兩個有什麼不同?

+1

我認爲你的意思是'int.class' vs'Integer.TYPE'? – birryree 2012-04-17 16:46:21

+0

@LouisWasserman - 'TYPE'是Integer類的一個常量,它返回'Class '對象:http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#類型 – birryree 2012-04-17 16:47:46

+0

https://www.google.ru/search?q=Difference+between+Integer.class+and+Integer.TYPE – 2012-04-17 16:48:21

回答

4

我並不積極您的意思,但 - A Class object是一種類型的運行時代表。也就是說,int.classInteger.class不同,即使int不是類。它有點複雜,但即使在採用原始參數或返回原始值的方法上也需要進行反射,或者區分接受int的方法接受Integer。我相信相當於int.class

+0

我們正在尋找遙遠的未來,但根據[Oracle的Java路線圖](http://www.javaworld.com/javaworld/jw-03-2012/120315-oracle-s-java-roadmap.html), Java 10及更高版本將擺脫原始類型,從而使Java中的所有東西都成爲一個對象。現在,如果只是這些方法(功能!)可以成爲頭等艙... – darioo 2012-04-17 16:49:06

+0

@darioo所以你基本上是說,而不是'int',我們將不得不寫'Integer'?更好地讓我的手指準備好(** NO **不是這個意義上的)! – fireshadow52 2012-04-17 17:01:24

+0

@ fireshadow52 - 不,它們可能會做.Net所做的並且使'int'成爲'Integer'的別名 - 否則幾乎所有在Java10之前的Java代碼都將無法編譯(違反了Java應該被編碼的規則 - 與以前的版本兼容)。透明'Integer'對象的創建和使用,你不需要做任何不同的事情。 – birryree 2012-04-17 17:25:52