[問題] Generic Type erasure
小弟剛學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
→
05/30 13:04, , 1F
05/30 13:04, 1F
→
05/30 23:46, , 2F
05/30 23:46, 2F
→
05/31 02:53, , 3F
05/31 02:53, 3F
→
06/01 01:12, , 4F
06/01 01:12, 4F