泛型 小记

本文探讨如何在Java类内部和继承的父类中获取泛型类型信息,重点介绍了在`A`类中通过`B`的泛型参数进行操作的方法,并展示了如何利用`ParameterizedType`和`Type`来获取实际类型参数。
摘要由CSDN通过智能技术生成
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

public class Demo {
    public static void main(String[] args) {
        A a = new A();
    }
}

/**
 * 1.对于一个类上定义的泛型,无法在类内部获取到对应的泛型内容
 * 这里,没办法在B的具体对象中,获取到所对应的泛型类型
 */
class B<T, F> {
}

/**
 * 1.可以获取到父类/接口上定义的具体泛型信息
 * 这是因为对于类A,继承的父类B所对应的泛型在使用中已经确定了
 */
class A extends B<String, String> {
    public A() {
        super();
        this.print();
    }

    private void print() {
        Type types = this.getClass().getGenericSuperclass();
        Type[] type1 = ((ParameterizedType) types).getActualTypeArguments();
        System.out.println(type1[0].getTypeName());
        System.out.println(type1[1].getTypeName());
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值