Сегодня я писал какой-то тяжелый код с использованием рефлексии, и я столкнулся с таким поведением, которое я не могу объяснить: почему
Type[] types = ((ParameterizedType)m.getGenericReturnType()).getActualTypeArguments();
Class[] c = (Class[])types;
Создайте исключение ClassCastException при итерации по тому же массиву и приведении каждого отдельного элемента, т.е.
for(Type t : types) {
Class c = (Class)t;
}
успешно
Я имею в виду, если приведение одного элемента к другому классу возможно, почему невозможно также приведение между массивами одного типа?
Возможно, есть причина, но я не могу ее найти ...