作者singlovesong (~"~)
看板java
標題[問題] Generic Type erasure
時間Mon May 30 02:38:22 2011
小弟剛學Java
有個問題想請教 就是關於Java generic 的type erasure 機制
書中提到說compiler 看到 generic的class 會做type erasure
所以基本上跟沒有generic 是差不多意思
所以不能寫出如 T MyClass = new T(); // T is generic class
之類的寫法 因為compiler 不知道T的type 沒辦法產生byte code
那請問一下 產生的byte code 既然沒有type 在run time 的時候又如何
把這個type 給"生"出來的呢?
第二個問題是為什麼C++的template 就可以支援上面那樣子的寫法阿@@??
(可以在template class 寫new出一個T物件)
是C++跟Java語言間implementation 的差異嗎?
謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.244.131
→ sbrhsieh:Java generics 與 C++ template 是兩回事(也不能類比)。 05/30 13:04
→ tomap41017:之前剛從C++學Java時也搞得一頭霧水XDDD 05/30 23:46
→ legnaleurc:runtime 沒生 type 啊, 完全當 Object 用 05/31 02:53
→ singlovesong:謝謝!! 06/01 01:12