在Java revisited中,代码摘录如下:
class Holder<T>{
private T[] contents;
private int index = 0;
public Holder(int size){
//contents = new T[size]; //compiler error - generic array creation
contents = (T[]) new Object[size]; //workaround - casting Object[] to generic Type
}...}
它用于创建通用数组,但根据类型擦除(我在 java 在线教程上检查过),在编译的类中T
结束,所以强制转换会结束
,这似乎与没有强制转换没有区别。Object
(T[])
(Object[])
那么该铸造的功能或铸造的任何特殊含义是什么?任何提示都是感激的。