复习一下泛型

        List<String> list1 = new ArrayList<String>();
        List<Integer> list2 = new ArrayList<Integer>();
        System.out.println(list1.getClass());
        System.out.println(list2.getClass());
        System.out.println(list1.getClass() == list2.getClass());

输出结果:
class java.util.ArrayList
class java.util.ArrayList
true
泛型信息可以在运行时被擦除,泛型在编译期有效,在运行期被删除,也就是说所有泛型参数类型在编译后都会被清除掉。归根结底不管泛型被参数具体化成什么类型,其class都是RawType.class,比如List.class,而不是List.class或List.class

泛型的使用

泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法

public class Genericity<K,E,T> {
    K k;
    E e;
    T t;

    //泛型必须先声明才能使用
    public <V> void genericityMethod1(V v){
        System.out.println(v);
    }
    //如果使用了类中的泛型可以不声明
    public void genericityMethod2(K k){
        System.out.println(k);
    }
    //如果是静态方法即使使用了类中的泛型,依然要先声明
    //因为类中的泛型在创建对象时才能确定,而静态方法不需要对象
    public static <K> void genericityMethod3(K k){
        System.out.println(k);
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值