首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何实例化List<MyType>?

如何实例化List<MyType>?
EN

Stack Overflow用户
提问于 2012-04-11 22:36:07
回答 8查看 119.5K关注 0票数 95

我怎样才能让这类东西工作呢?我可以检查是否为(obj instanceof List<?>),但无法检查是否为(obj instanceof List<MyType>)。有没有办法做到这一点?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-04-11 22:36:53

这是不可能的,因为泛型的数据类型在编译时会被擦除。要做到这一点,唯一可能的方法是编写某种类型的包装器,其中包含列表包含的类型:

代码语言:javascript
复制
public class GenericList <T> extends ArrayList<T>
{
     private Class<T> genericType;

     public GenericList(Class<T> c)
     {
          this.genericType = c;
     }

     public Class<T> getGenericType()
     {
          return genericType;
     }
}
票数 52
EN

Stack Overflow用户

发布于 2016-07-23 16:46:02

代码语言:javascript
复制
if(!myList.isEmpty() && myList.get(0) instanceof MyType){
    // MyType object
}
票数 40
EN

Stack Overflow用户

发布于 2012-04-11 22:40:53

您可能需要使用反射来检查它们的类型。要获取列表的类型:Get generic type of java.util.List

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10108122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档