Ext*_*der 4 java arrays generics casting
public K[] toArray()
{
K[] result = (K[])new Object[this.size()];
int index = 0;
for(K k : this)
result[index++] = k;
return result;
}
Run Code Online (Sandbox Code Playgroud)
这段代码似乎不起作用,它会抛出异常:
java.lang.ClassCastException:[Ljava.lang.Object; 不能投...
有人能告诉我如何创建一个泛型类型的数组?谢谢.
Mau*_*rry 11
你不能:你必须把这个类作为一个参数传递:
public <K> K[] toArray(Class<K> clazz)
{
K[] result = (K[])Array.newInstance(clazz,this.size());
int index = 0;
for(K k : this)
result[index++] = k;
return result;
}
Run Code Online (Sandbox Code Playgroud)