在类里面定义了一个listList<BdCategoryLog> categoryLogList = new ArrayList<BdCategoryLog>();在外面到到这list,如何知道这个list的泛型的名字BdCategoryLog呢/注意:这个list!=null,但size=0

解决方案 »

  1. Type type = categoryLogList.getClass();
    ParameterizedType ptype = (ParameterizedType)type;
    Class rawType = (Class)ptype.getActualTypeArguments()[0];
    String className = rawType.getSimpleName();// 简单名称
      

  2. 不好意思,List和Map的泛型最多只能拿到类似于E,T这些保留字,
    拿不到实际类型,我以前也没试验(我还以为跟自己定义的泛型类一样呢)
      

  3. java 泛型的残酷现实就是:在泛型代码内部,无法获得任何有关泛型参数类型的信息。在使用泛型时,任何具体的类型都被擦除,唯一知道的是你在使用一个对象。比如:List<String>和List<Integer>在运行事实上是相同的类型。他们都被擦除成他们的原生类型,即List。
      

类似问题 »