Java下的Framework编写(2)--泛型的应用
来源:互联网 发布:mac 虚拟机 ubuntu 编辑:程序博客网 时间:2024/06/07 19:40
JDK5.0支持泛型后,Collection类便集体换装,好处一是Collction的调用者不用再对返回值进行显式的转换,二是获得了编译期的类型安全。
除了应用Collecton的泛型特性外,JDK5.0还允许我们编写自己的泛型类。
我就理所当然的期望,通过应用泛型,能够让框架获得比上面两点更多的好处。但用过一阵子之后一总结,发现因为著名的擦拭法,因为拿不到T.class,也就不可以从T来newInstance(),泛型在框架内的表现,仍然只能带来以上两个优点。
除了应用Collecton的泛型特性外,JDK5.0还允许我们编写自己的泛型类。
我就理所当然的期望,通过应用泛型,能够让框架获得比上面两点更多的好处。但用过一阵子之后一总结,发现因为著名的擦拭法,因为拿不到T.class,也就不可以从T来newInstance(),泛型在框架内的表现,仍然只能带来以上两个优点。
一,调用者不用对返回值进行显式转换。
不过对于抠门的Programer来说,这点还要计算一下,搞不好省了一个地方的显式转换,却多了三四个地方要显式定义泛型。
不过泛型有个好的地方是,如果调用者不显式定义<T>,那用T定义的地方会自动转回Object,如果T是用<T extends FooClass>定义的,就自动转回FooClass,和你不用泛型时的结果一样。
所以,作为框架,应该提供这个使用泛型与否的选择给用户。合不合算由调用者自己决定和选择。
二,编译期的类型检查
是编译期,对于越多越多使用反射和hashMap进行晚绑定,离类型安全越来越远的java来说,T和Class<T>的限制是个不错的救赎。
仍然在想有没有第3个好处。
- Java下的Framework编写(2)--泛型的应用
- Java下的Framework编写(3)--cglib的应用
- Java下的Framework编写(3)--cglib的应用
- Java下的Framework编写(4)--Annotation vs XML
- Java下的Framework编写(反射,泛型,元数据,CGLib,AOP,IOC)(1)--序
- Java下的Framework编写(1)--序 (反射,泛型,元数据,CGLib,AOP,IOC)
- .NET Compact Framework 下的3G应用
- Java下的Framework编写(反射,泛型,元数据,CGLib,代码动态生成,AOP,动态语言嵌入)(1)--序
- Java下的Framework编写(反射,泛型,元数据,CGLib,代码动态生成,AOP,动态语言嵌入)(1)--序
- Metasploit Framework下的Exploit应用开发中文手册
- android开发---8.framework层的java应用接口demo
- zend framework (1.0) 入口文件的编写
- JAVA下的GZIP应用
- linux下静动态库Makefile的编写和应用
- Java Collection的Framework
- Java平台下使用QT的The Graphics View Framework
- 用Java编写自己的机器人 Robot类的应用
- JAVA 中 jar 文件的编写和应用
- 常用mimetype列表
- 游戏开发乱弹——我的“编程史”(上)
- 模板中的依赖型基类
- 游戏开发乱弹——我的“编程史”(下)
- 用 PHP 开发健壮的代码
- Java下的Framework编写(2)--泛型的应用
- 十大Web 2.0攻击向量
- SybaseASE数据库sa密码的破解
- ASP.NET的错误处理机制
- Java下的Framework编写(3)--cglib的应用
- bolg开通第一天!
- Java下的Framework编写(4)--Annotation vs XML
- Access 中备注类型被截断
- genexus 中可以直接使用java代码