zoukankan      html  css  js  c++  java
  • 父类如何获取子类的范型

    1,spring中一配置了<bean></bean>再启动项目的时候就会自动创建该类的实例。

    2,java内存那块还得继续深入。

    3,上代码:

    1. public class subParam extends param<myclass, myinvoke> {  //subParam 继承了param 。param里面俩范型
    2.     public static void main(String[] args) throws Exception{  
    3.         subParam  s = new subParam();  //子类一实例化,父类的构造函数里有乾坤
    4.     }  
    1. public class param<T1, T2> {  
    2.     class A {}  
    3.     class B extends A {}  
    4.       
    5.     private Class<T1> entityClass;  
    6.     protected param (){  
    7.         Type type = getClass().getGenericSuperclass();  //先得到当前类的Class,在得到当前类的父范型Class
    8.         System.out.println("getClass()==" + getClass());  
    9.         System.out.println("type = " + type);  
    10.         Type trueType = ((ParameterizedType)type).getActualTypeArguments()[0];  //强转为 可范型化的类型,得到父范型的真实的类的参数。
    11.         System.out.println("trueType1 = " + trueType);  
    12.         trueType = ((ParameterizedType)type).getActualTypeArguments()[1];  
    13.         System.out.println("trueType2 = " + trueType);  
    14.         this.entityClass = (Class<T1>)trueType;  
    15.           
    16.           
    17.         B t = new B();  
    18.         type = t.getClass().getGenericSuperclass();  
    19.       
    20.         System.out.println("B is A's super class :" + ((ParameterizedType)type).getActualTypeArguments().length);  //有时候强转会报异常。
    21.     }  
    22.       
    23. }  

    public static <T> Class<T> getClassGenricType(final Class clazz) //第一个<T> 只是声明范型,没有别的意思。
    {
    return getClassGenricType(clazz, 0);
    }

  • 相关阅读:
    Git之不明觉厉11-利其器source tree
    GUI for git|SourceTree|入门基础
    UIButton
    NSDictionary
    注释方法、代码块加快捷键注释
    UIActionSheet
    UIActivityIndicatorView
    UIPickerView
    UIImageView
    UIAlertView
  • 原文地址:https://www.cnblogs.com/slhzxm16/p/6656588.html
Copyright © 2011-2022 走看看