- 4
- 0
- 约6.47千字
- 约 13页
- 2018-10-11 发布于福建
- 举报
Java泛型的应用的研究
Java泛型的应用的研究
摘要:分析非泛型的Java系统存在的数据类型转换安全问题,提出基于Java泛型的解决方案。通过对泛型的原理分析,探讨Java泛型的实际应用。并在此基础上,总结Java泛型的的特点。
关键词:泛型;对象包装;数据类型转换;集合
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)22-690-03
Research on Java Generics
WU De-peng
(Department of Computer Science Information Engineering,Guangxi Technological College of Machinery and Electricity, Nanning 530007,China)
Abstract: This paper analyses security problem of the data type converting in non-generics Java system and put up the solution which bases on generics. Through the generics theory analysis, study practical application of generics in Java. On this basis, sum up the feature of generics in Java.
Key words: generics; Object packaging; data type converting; collection
1 引言
Java语言的泛型是JDK1.5(Java Development Kit,Java开发工具包)版本之后引入的新特性。在基于Java的系统开发中,经常需要频繁地对一些对象进行包装和取出。包装操作一般通过集合来操作,即将多个对象实例加入到集合对象中管理和传递,然后在适当的时机在将这些对象实例从集合中取出并还原成原来的数据类型。在JDK1.5以前的版本,在进行多个对象包装时,集合类一般都规定所其所容纳的对象为Object类型,即所有Java类的最高父类。从集合里取出对象时,再根据需要进行强制类型转换,从而还原成包装前的对象的数据类型。这样的操作过程存在有潜在的类型转换安全问题。假设系统开发人员从一个集合里取出对象的时候无法知道包装前对象的数据类型,会导致无法完成转换或者隐含有类型转换错误。针对这个问题,JDK1.5引入了泛型的概念,它能在创建一个Java集合时显式指定其所能容纳的数据类型,并在取出时明确告诉系统开发人员取出的对象是什么数据类型,这样避免了包装和取出的数据类型不一致,从而有效地避免代码中的潜在类型转换安全错误。
2 Java泛型的原理
2.1 非泛型的数据类型转换存在的问题
为了更深入理解Java泛型的概念,我们先来看一个没有引入泛型的例子:
package test.generics;
import Java.util.ArrayList;
public class TestApp1 {
public static void main(String[] args) {
ArrayList list=new ArrayList();
list.add(new Integer(1));
list.add(new Integer(2));
list.add(new Double(5.23));
for (int i=0;i<list.size();i++) {
Integer temp=(Integer) list.get(i);
System.out.println(Value());
}
}
}
本例中,建立了一个ArrayList的实例,并分别把整数1、2和浮点数5.23添加给它。然后循环遍历该ArrayList,从中取出整型值并打印到控制台上。这个程序编译的时候并没有错误,能被编译通过,但是运行的时候JDK却抛出了如下异常:
Exception in thread main
Java.lang.ClassCastException: Java.lang.Double
这是因为程序运行时,在循环里进行取出对象的时候,试图将Double类型转换成Integer类型,这显然是不合理的。
作为一个习惯于使用语言提供的类型安全的系统开发人员,希望这样的问题在编译期间就能被发现,而不是潜伏到运行的时刻才抛出错误,这正
您可能关注的文档
最近下载
- DBJT_15-112-2016_集装箱式房屋_技术规程-全国各省建筑标准.pdf VIP
- 经信机关党组书记2025年度民主生活会个人“五个带头”对照检查材料(范文).docx VIP
- 正大杯第十二届全国大学生市场调研与分析.pptx VIP
- DB11T 904-2012 土池规模化培育轮虫技术规范.docx VIP
- 长沙理工大学电磁学题库.doc
- 长沙理工大学电磁场作业答案.docx VIP
- DB11T 908-2012 无公害农产品 菜心生产技术规程.docx VIP
- 专题08+水溶液中的离子反应与平衡(复习课件)(全国通用)2026年高考化学二轮复习讲练测.pptx VIP
- 全国大学生市场调查分析大赛优秀报告正大杯.pptx VIP
- 2025年南京市中考英语作文万能模板及写作技巧.docx VIP
原创力文档

文档评论(0)