我如何使这种事情起作用?我可以检查(obj instanceof List<?>)
,但不能检查(obj instanceof List<MyType>)
。有办法可以做到吗?
最佳答案
这是不可能的,因为在泛型编译时会擦除数据类型。做到这一点的唯一可能方法是编写某种包装,该包装保存列表包含的类型:
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;
}
}