关于java泛型

    技术2024-08-09  57

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

     

    通过一个例子来解释:

    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>

     

    经比较可知:

    集合使用泛型后,元素类型得以明确,避免了手动类型转换的过程,提高了效率。

     

    最新回复(0)