[J2SE 5.0专题][2.1]泛型
大凡用过C/C++的朋友对“泛型”这个词都不会陌生吧?我相信有过一些Java编码经验的朋友或多或少也遇到过使用集合类的方法时必须要手工做类型转换的情况。看下面的例子:import java.util.ArrayList;
import java.util.Iterator;
public class MyGenerics {
public static void main(String[] args) {
useNonGenerics();
useGenerics();
}
private static void useNonGenerics() {
ArrayList aList = new ArrayList();
aList.add(new Integer(7));
aList.add(new Integer(17));
int sum = 0;
Iterator iter = aList.iterator();
while (iter.hasNext()) {
sum += ((Integer)iter.next()).intValue();
}
System.out.println(sum);
}
private static void useGenerics() {
ArrayList<Integer> aList = new ArrayList<Integer>();
aList.add(new Integer(7));
aList.add(new Integer(17));
int sum = 0;
Iterator<Integer> iter = aList.iterator();
while (iter.hasNext()) {
sum += iter.next().intValue();
}
System.out.println(sum);
}
}
在这个例子中我提供了两个不同方法来完成同样的事,例子本身有没有意义不重要,我只是想让你看到一些实际在Java中使用泛型的代码。
泛型的好处在于它可以避免那些我们本不需要去考虑的类型转换,并且可以提供编译期的类型安全检查。(注意,在上面的例子中,如果不使用泛型,那么我们可以把iter.next()返回的对象转换成任意类型,然后调用那个类型的方法而不会抛出任何编译期异常)同时,泛型的引入也为模板类和模板方法的出现奠定了基础。
如果有时间,建议大家把新的java.util.Collection的源码拿下来看一看,你完全可以实现自己的支持泛型的API。
↓相关文章:
- · J2EE 探索者:使用 Java Servlets 2.4 来执行过滤
- · J2EE 探险者:持久数据管理,第 1 部分
- · J2EE探索者:隐式对象的多种用法
- · J2EE 探险者:持久数据管理,第 1 部分
- · Oracle9iAS Containers for J2EE独立版指南--(配置数据源与调用)
- · Oracle9iAS Containers for J2EE独立版指南--(打包与部署)
- · J2EE探索者:用JMS进行企业消息传递[Z]
- · J2EE全面介绍(二)
- · J2EE设计模式:CMP到BMP模式(二)
- · J2EE学习笔记(8) 真是知易行难 初试Struts
- · 开发J2EE应用的要领
- · J2EE项目10大风险
- · J2EE平台WEB组件开发中如何使用定制标签
- · J2EE交易框架:构建框架
- · 应用Rational工具简化基于J2EE项目(四)分析和工具的进展
- · 应用Rational 工具简化基于J2EE的项目 (二)启动项目
- · J2ee学习流程
- · J2EE WEB层的曙光 -- JSF
- · j2ee 笔记 --基础
- · 基于J2EE的三层B/S信息系统研究
- · j2ee随笔(JSP)(语法部分1)
- · j2EE基础概念
- · 当前流行的J2EE WEB应用架构分析
- · J2SE的相关命名和版本号
- · J2EE学习笔记(6) Struts HTML Tags
- · J2EE学习笔记(3) Struts Logic Tags
- · J2EE学习笔记(1) 开篇
- · J2EE设计模式学习笔记之--用实体组件进行数据存取
- · WSAD5.1+oracle9i在一台机器上的问题ora-00600-参考
- · Jboss下MS SQL Server配置指导
- · J2EE应用部署(一):基础篇
- · 漫谈EJB (3)
- · 漫谈EJB (1)
- · J2EE应用部署(二):
- · JBuilder7+Weblogic7+mysql 开发EJB的配置(加入BMP,CMP开发实例)[推荐]
- · apache 2.0.48 + tomcat 5.0.16 配置说明
- · jive3.1.1的安裝
- · Tomcat4.1.x以上中类的加载
- · win2000下apache2+weblogic7实现基于同一个ip地址的多个虚拟主机访问多个weblogic站点
- · Apache2.0.47和Tomcat4.1.27整合过程
- · IBM WebSphere JSP源代码暴露漏洞
- · Tomcat IIS HowTo:将Tomcat装入IIS全攻略
- · CORBA例子(转)————————我也不知道是什麽东东:-)
- · Resin服务器平台介绍
- · Sun Java Web服务器远程可执行命令漏洞

