您的位置:首页 > 编程语言 > Java开发

关于java泛型

2011-02-02 17:12 453 查看
泛型的主要用途,就是用来指定集合要持有什么类型的对象,并由编译器来保证类型的正确性。它实现了参数化类型,使集合可以存储属于同一类型的元素。

通过一个例子来解释:

public class Test<T> {
private T t;
public Test<(T t) {
this.t = t;
}
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
}

不使用泛型:

public class Demo1 {
public static void main(String args[]) {
Test str = new Test("Hello Java!");
Test dou = new Test(new Double("10"));
Test obj = new Test(new Object());

System.out.println("str: "+(String)str.getT());
System.out.println("dou: "+(Double)dou.getT());
System.out.println("obj: "+(Object)obj.getT());
}
}

因为java的泛型是处在编译层的,JVM在对待泛型数据的时候,把它们看成是Object类型。

在使用这些元素时,JVM会自动进行类型转换。

使用泛型:
public class Demo2 {
public static void main(String args[]){
Test<String> str =new Test<String>("Hello world!");
Test<Double> dou =new Test<Double>(new Double("25"));
Test<Object> obj =new Test<Object>(new Object());

System.out.println("str: "+str.getT());
System.out.println("dou: "+dou.getT());
System.out.println("obj: "+obj.getT());
}
}

class Test<T> 声明了一个泛型类,这个T没有任何限制,实际上相当于 class Test<T extends Object>

经比较可知:

集合使用泛型后,元素类型得以明确,避免了手动类型转换的过程,提高了效率。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: