JAVA反射-getGenericSuperclass()用法

来源:互联网 发布:mmd动作数据导入maya 编辑:程序博客网 时间:2024/05/16 09:39

一、Demo

父类

package com.mycode.test;public class Person<T1,T2> {}


子类

package com.mycode.test;import java.lang.reflect.*;public class Student extends Person<Integer, Boolean> {@SuppressWarnings("rawtypes")public static void main(String[] args) {Student student = new Student();Class clazz = student.getClass();//getSuperclass()获得该类的父类System.out.println(clazz.getSuperclass());/** * getGenericSuperclass()获得带有泛型的父类         * Type是 Java 编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。 */Type type = clazz.getGenericSuperclass();System.out.println(type);//ParameterizedType参数化类型,即泛型ParameterizedType p = (ParameterizedType)type;//getActualTypeArguments获取参数化类型的数组,泛型可能有多个Class c1 = (Class)p.getActualTypeArguments()[0];System.out.println(c1);Class c2 = (Class)p.getActualTypeArguments()[1];System.out.println(c2);}}

二、运行结果

class com.mycode.test.Personcom.mycode.test.Person<java.lang.Integer, java.lang.Boolean>class java.lang.Integerclass java.lang.Boolean





0 0
原创粉丝点击