Mad*_*hik 1 java generics compilation type-erasure
假设我有一个类,我想在某处使用它作为泛型类型:
class MyList<T>
{
T[] list=T[10];
public void add(T element)
{
list[0]=element;
}
}
Run Code Online (Sandbox Code Playgroud)
编译之后,是否会删除类型信息,就像通用集合一样?
我不需要在任何地方使用此代码,因此请不要专注于发现错误.我只是想通过这个代码提出一个一般性问题,在编译之后将列出实例变量类型为Object类.
我甚至不确定是否会编译.它应该至少提供一个警告.
这里的问题是数组是协变的.泛型不是.这意味着泛型不会在运行时保留类型信息.数组做.
是的,这适用于所有泛型类型,包括用户定义的类型.
| 归档时间: |
|
| 查看次数: |
706 次 |
| 最近记录: |