zoukankan      html  css  js  c++  java
  • (转)java反射获得泛型参数GETGENERICSUPERCLASS()

     public class Person<T> {
     2 
     3 }
     4 
     5 import java.lang.reflect.ParameterizedType;
     6 import java.lang.reflect.Type;
     7 
     8 public class Student extends Person<Student> {
     9 public static void main(String[] args) {
    10 Student st=new Student();
    11 Class clazz=st.getClass();
    12 //getSuperclass()获得该类的父类
    13 System.out.println(clazz.getSuperclass());
    14 //getGenericSuperclass()获得带有泛型的父类
    15 //Type是 Java 编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。
    16 Type type=clazz.getGenericSuperclass();
    17 System.out.println(type);
    18 //ParameterizedType参数化类型,即泛型
    19 ParameterizedType p=(ParameterizedType)type;
    20 //getActualTypeArguments获取参数化类型的数组,泛型可能有多个
    21 Class c=(Class) p.getActualTypeArguments()[0];
    22 System.out.println(c);
    23 }
    24 }
    25 
    26 打印结果:
    27 
    28 class com.test.Person
    29 com.test.Person<com.test.Student>
    30 class com.test.Student
  • 相关阅读:
    condition精准控制
    Juc(上)
    算法和空间复杂度分析
    ReentrantLock
    死锁
    互斥锁
    线程常用方法
    多线程售票与同步机制
    线程的7种状态
    selenium 自动刷司法课
  • 原文地址:https://www.cnblogs.com/wrkjwl/p/9228343.html
Copyright © 2011-2022 走看看