Java反射之getGenericSuperclass()用法
2021-05-23 19:29
标签:main normal code ros flow 反射 组类型 ber app 父类 子类 运行结果 参考链接: Java反射之getGenericSuperclass()用法 标签:main normal code ros flow 反射 组类型 ber app 原文地址:https://www.cnblogs.com/chenmingjun/p/9734239.htmlpackage com.itheima.mytest;
public class Person
}package com.itheima.mytest;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class Student extends PersonInteger, String> {
@SuppressWarnings("rawtypes")
public static void main(String[] args) {
Student student = new Student();
// getClass() 获得该类的类类型(即类型变量)
Class clazz = student.getClass();
// getSuperclass() 获得该类的父类
System.out.println(clazz.getSuperclass());
// getGenericSuperclass() 获得该类带有泛型的父类
Type type = clazz.getGenericSuperclass();
System.out.println(type);
// Type是 Java 编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。
// ParameterizedType 参数化类型,即泛型
// 将Type转化为参数化类型(即泛型)
ParameterizedType p = (ParameterizedType) type;
// getActualTypeArguments() 获取参数化类型的数组,泛型可能有多个
Type[] actualTypeArguments = p.getActualTypeArguments();
// 将Type转化为类型变量(即Class)
Class c1 = (Class) actualTypeArguments[0];
Class c2 = (Class) actualTypeArguments[1];
System.out.println(c1);
System.out.println(c2);
}
}class com.itheima.mytest.Person
com.itheima.mytest.Personjava.lang.Integer, java.lang.String>
class java.lang.Integer
class java.lang.String
https://blog.csdn.net/qq_26424655/article/details/71515741
文章标题:Java反射之getGenericSuperclass()用法
文章链接:http://soscw.com/essay/88344.html