关于java泛型

本文介绍了Java泛型的基本概念及其在集合中的应用。通过对比使用泛型前后代码的变化,阐述了泛型如何帮助开发者明确集合中元素的类型并提高类型转换效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

通过一个例子来解释:

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>

 

经比较可知:

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值