Java中泛型的理解与等价实现[Java编程]
本文“Java中泛型的理解与等价实现[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
泛型是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﹤T﹥ {
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﹤Integer﹥ intOb=new Gen﹤Integer﹥ (88);
intOb.showTyep();
int i= intOb.getOb();
System.out.println ("value= " + i);
System.out.println("--------------------------- -------");
//定义泛型类Gen的一个String版本
Gen﹤String﹥ strOb=new Gen ﹤String﹥("Hello Gen!");
strOb.showTyep();
String s=strOb.getOb();
System.out.println("value= " + s);
}
以上是“Java中泛型的理解与等价实现[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |