首页 > 代码库 > Java 泛型 Java使用泛型的意义
Java 泛型 Java使用泛型的意义
Java 泛型 Java使用泛型的意义
@author ixenos
直接意义
在编译时保证类型安全
根本意义
a) 类型安全问题源自可复用性代码的设计,泛型保证了类型安全的复用模板
b) 使用复用性模板时不用手动强制类型转换
三种泛型实现方式的优缺点
- C++:模板方式实现,在编译时完全展开并且支持偏特化,类型精度高,代码共享差;
- Java 5:擦除方式实现,仅用于编译时类型检查,在运行时擦除,向后兼容性好,代码共享好,类型精度非常差;
- C# 2.0:混合方式实现,在运行时展开特化,类型精度高,代码共享还行。
- 模板方式就是对应每一种类型都生成特定的模板,一个泛型类将有多个模板
- 擦除方式就是对应所有泛型类型信息在编译时擦除,一个泛型类只有一个模板
Q:Java为什么采用类型擦除?
A:为了向后兼容(指二进制层面的向后兼容性,而非源码上的)
具体请参考:Reifiable generics与Type erasure generics各有怎样的优点与缺点?
Java不能实现真正泛型的原因?
java 泛型擦除发生在哪个阶段,如何用反编译工具查看泛型擦除后的代码?
Java 泛型 Java使用泛型的意义
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。