- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[JAVA中的泛型概念
JAVA中的泛型概念
跟C++中的模板概念是类似的我觉得,不过功能可能更强大一点。
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。
Java语言引入泛型的好处是安全简单。
在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要 求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。
泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
规则和限制
1、泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。
2、同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。
3、泛型的类型参数可以有多个。
4、泛型的参数类型可以使用extends语句,例如。习惯上称为“有界类型”。
5、泛型的参数类型还可以是通配符类型。例如Class classType = Class.forName(java.lang.String);
泛型还有接口、方法等等,内容很多,需要花费一番功夫才能理解掌握并熟练应用。在此给出我曾经 了解泛型时候写出的两个例子(根据看的印象写的),实现同样的功能,一个使用了泛型,一个没有使用,通过对比,可以很快学会泛型的应用,学会这个基本上学 会了泛型70%的内容。
例子一:使用了泛型
public class Gen {
private T ob; //定义泛型成员变量
public Gen(T ob) {
this.ob = ob;
}
public T getOb() {
return ob;
}
public void setOb(T ob) {
this.ob = ob;
}
public void showTyep() {
System.out.println(T的实际类型是: + ob.getClass().getName());
}
}
public class GenDemo {
public static void main(String[] args){
//定义泛型类Gen的一个Integer版本
Gen intOb=new Gen(88);
intOb.showTyep();
int i= intOb.getOb();
System.out.println(value= + i);
System.out.println(----------------------------------);
//定义泛型类Gen的一个String版本
Gen strOb=new Gen(Hello Gen!);
strOb.showTyep();
String s=strOb.getOb();
System.out.println(value= + s);
}
}
例子二:没有使用泛型
public class Gen2 {
private Object ob; //定义一个通用类型成员
public Gen2(Object ob) {
this.ob = ob;
}
public Object getOb() {
return ob;
}
public void setOb(Object ob) {
this.ob = ob;
}
public void showTyep() {
System.out.println(T的实际类型是: + ob.getClass().getName());
}
}
public class GenDemo2 {
public static void main(String[] args) {
//定义类Gen2的一个Integer版本
Gen2 intOb = new Gen2(new Integer(88));
intOb.showTyep();
int i = (Integer) intOb.getOb();
System.out.println(value= + i);
System.out.println(----------------------------------);
//定义类Gen2的一个
您可能关注的文档
- [GA793.1-2008系统功能性能检验规范091007.ppt
- [FX组合韩国人气女子组合介绍精.ppt
- [G03W入门辅导-1试用版.ppt
- [gai课题三:利用化学方程式的简单计算.ppt
- [ijif.docx
- [G68产品培训手册.ppt
- (会计学原理练习答案.doc
- [G978培训资料.ppt
- [IIR数字滤波器设计及软件实现实验报告.doc
- [iH5高级教程:H5创意展示,3D翻书特效.doc
- 2025年临床执业医师考前冲刺练习题含答案详解(模拟题).docx
- 2025年临床执业医师考前冲刺练习题附完整答案详解(网校专用).docx
- 2025年临床执业医师考前冲刺练习题附答案详解【综合卷】.docx
- 2025年临床执业医师考前冲刺练习题及参考答案详解【研优卷】.docx
- 2025年临床执业医师考前冲刺试卷附答案详解(培优A卷).docx
- 2025年临床执业医师考前冲刺练习题及参考答案详解【A卷】.docx
- 2025年临床执业医师考前冲刺试卷及完整答案详解【必刷】.docx
- 2025年临床执业医师考前冲刺练习题【word】附答案详解.docx
- 2025年临床执业医师考前冲刺练习试题(典优)附答案详解.docx
- 2025年临床执业医师考前冲刺试卷【实用】附答案详解.docx
最近下载
- 管理学论文5000字.docx VIP
- 新修订特种作业(高处安装、维护、拆除作业)考试题库(核心题版).pdf VIP
- 《服装设计基础》知识考试复习题库资料(含答案).pdf VIP
- 2025年医学高级职称-精神病学(医学高级)考试近5年真题荟萃附答案.docx
- 2025年医学高级职称-精神病学(医学高级)考试近5年真题荟萃附答案.docx
- 2024最新传唤证模板.doc VIP
- 2025年医学高级职称-精神病学(医学高级)考试近5年真题集锦(频考类试题)带答案.docx
- 2025年高压电工复审考试题库库+答案.docx VIP
- 2025年医学高级职称-精神病学(医学高级)考试近5年真题集锦(频考类试题)带答案.docx
- 车轮制动器教案.doc VIP
文档评论(0)