这太神奇了!看看这个简单的代码:
public class ArrayOFMagic<T> {
protected T[] array;
protected int showMeYouRLength() {
return array.length;
}
ArrayOFMagic() {
array = (T[]) new Object[10];
}
protected void set(T value, int index) {
array[index] = value;
}
public static void main(String[] args) {
ArrayOFMagic<Integer> arrayOFMagic = new ArrayOFMagic<Integer>();
System.out.println(arrayOFMagic.showMeYouRLength());
System.out.println("MAGIC INCOMING");
System.out.println(arrayOFMagic.array.length);
}
}
输出:
10
MAGIC INCOMING
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; 不能转换为 [Ljava.lang.Integer; 在 ArrayOFMagic.main(ArrayOFMagic.java:25)
我两次调用array.length。一次通过方法和一次直接。使用方法时继续,直接调用时抛出异常。哦有人解释一下吗?
编辑:澄清一下:类在不直接调用时效果很好。您可以在数组元素和所有..!