今天我在编写一些重型反射代码时,遇到了一个无法解释的行为:为什么会发生这种情况?
当在迭代同一数组并将每个元素强制转换时,抛出ClassCastException,即:
Type[] types = ((ParameterizedType)m.getGenericReturnType()).getActualTypeArguments();
Class[] c = (Class[])types;
当在迭代同一数组并将每个元素强制转换时,抛出ClassCastException,即:
for(Type t : types) {
Class c = (Class)t;
}
成功了吗?
我的意思是,如果可以将单个元素转换为另一个类,为什么相同类型的数组之间的转换不可能呢?
可能有原因,但我似乎找不到...