• 泛型转化为真实类型 ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]


    工具类:(泛型转化)

    【例子】:
    超类
    public class GenericDAO<T> {
      private Class<T> entityClass;
      protected GenericDAO() {
        Type type = getClass().getGenericSuperclass();
        Type trueType = ((ParameterizedType) type).getActualTypeArguments()[0];
        this.entityClass = (Class<T>) trueType;
      }
    }
    子类
    public class OptionManager extends GenericDAO<MSGC_OPTION> {

    }
    测试类
    public class OracleTest {
      public static void main(String[] args) throws Exception {
        OptionManager manager = new OptionManager();
      }
    }
    这样在你new OptionManager();以后
    超类里的entityClass就是子类那里的public class OptionManager extends GenericDAO<MSGC_OPTION> 里面的MSGC_OPTION所对应的class对象了..

  • 相关阅读:
    164-268. 丢失的数字
    163-20. 有效的括号
    Sword 30
    Sword 29
    Sword 27
    Sword 25
    Sword 24
    Sword 22
    Sword 21
    Sword 18
  • 原文地址:https://www.cnblogs.com/ai211234/p/5435069.html
Copyright © 2020-2023  润新知