zoukankan      html  css  js  c++  java
  • JAVA反射getGenericSuperclass()用法

    package com.mycode.test;
     
    public class Person<T1,T2> {
        
    }
    
    ###############
    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.Person
    com.mycode.test.Person<java.lang.Integer, java.lang.Boolean>
    class java.lang.Integer
    class java.lang.Boolean
  • 相关阅读:
    RabbitMq+Haproxy负载均衡
    RabbitMq常用命令
    几种常见的消息队列
    RabbitMq集群搭建
    a=a+b与a+=b的区别
    Redis集群搭建
    变量作用域
    8.3吝啬SAT问题
    Surrounded Regions
    Binary Tree Maximum Path Sum
  • 原文地址:https://www.cnblogs.com/sfnz/p/15727008.html
Copyright © 2011-2022 走看看