假设我有一个班级 我想在某处使用它作为通用类型:
class MyList<T>
{
T[] list=T[10];
public void add(T element)
{
list[0]=element;
}
}
编译之后,是否会删除类型信息,就像通用集合一样?
我不需要在任何地方使用此代码,因此请不要专注于发现错误。我只是想通过这个代码提出一个一般性问题,在编译之后将列出实例变量的类型为Object class。
答案 0 :(得分:8)
Yes ,couse。
另请注意:
答案 1 :(得分:5)
我甚至不确定是否会编译。它应该至少提供一个警告。
这里的问题是数组是协变的。泛型不是。这意味着泛型不会在运行时保留类型信息。阵列。
是的,这适用于所有泛型类型,包括用户定义的。