【发布时间】:2012-05-22 16:33:45
【问题描述】:
对应标题,我的问题是获取一个泛型数组的array-length,它在一个类的实例内部,已经用这个泛型类型进行了初始化。 当我想获取我的数组的长度(ak.array.length)时,java 会抛出这个错误:
线程“main”中的异常 java.lang.ClassCastException: [Ljava.lang.Object;不能转换为 [Ljava.lang.String; 在 Testclass.main(Testclass.java:15)
那么我在这段代码中的错在哪里? 提前致谢
public class Testclass {
static class ArrayKeeper<T> {
protected T[] array;
public ArrayKeeper() {
array = (T[])new Object[5];
}
}
public static void main(String[] args) {
//create a new instance of inner class ArrayKepper (type String)
Testclass.ArrayKeeper<String> ak = new Testclass.ArrayKeeper<String>();
System.out.println(ak.array.length); //cast error here.
}
}
【问题讨论】:
标签: java generics classcastexception