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());
}
}
泛型 小记
最新推荐文章于 2023-06-05 16:20:41 发布
本文探讨如何在Java类内部和继承的父类中获取泛型类型信息,重点介绍了在`A`类中通过`B`的泛型参数进行操作的方法,并展示了如何利用`ParameterizedType`和`Type`来获取实际类型参数。
摘要由CSDN通过智能技术生成