作者RockLee (Now of all times)
看板java
标题[问题] 为何 Java 的 Generics 不支援 primitive
时间Mon Dec 5 11:18:19 2011
小弟是 Java 新手,有个问题想请教一下,
为何 Java 的 Generics 无法支援 primitive type 呢?
Ex.
Hashtable<Integer, Character> -> ok
Hashtable<int, char> -> compile error
为何 Java 不采用类似 C++ template 的方式来实现 generic programming 呢?
Java 这样的限制跟 C++ template 相比有什麽好处或不得已的原因吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.126.30.95
1F:→ Chikei:因为Generics的runtime实作是把参数型别转成Object执行 12/05 11:36
2F:→ Chikei:而primitive type不是Object的subclass 12/05 11:41
3F:推 gwokae:用wrapper class,所有primitive type都有对应的wrapper 12/05 12:20
4F:→ RockLee:感谢C大与G大迅速的回应 12/05 15:43
5F:→ RockLee:但Java为何要这样的实作呢? 有什麽好处或不得已的原因吗? 12/05 15:44
6F:→ RockLee:为何不像C++的template一样用代换方式产生实际的code呢? 12/05 15:46
7F:→ Chikei:因为generics是JDK5的东西,而java选了向下相容的实作 12/05 17:53
8F:推 gwokae:primitive不是物件,所以很多人很不满~所以算是缺点吧? 12/05 19:55
9F:→ qrtt1:不是物件,但是很有效率啊xd 12/05 22:30
10F:推 PsMonkey:generics 有继承 12/06 09:50