作者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
1F:→ sbrhsieh:Java generics 与 C++ template 是两回事(也不能类比)。 05/30 13:04
2F:→ tomap41017:之前刚从C++学Java时也搞得一头雾水XDDD 05/30 23:46
3F:→ legnaleurc:runtime 没生 type 啊, 完全当 Object 用 05/31 02:53
4F:→ singlovesong:谢谢!! 06/01 01:12