Я пытаюсь создать метод в Java, который меняет массив или матрицу. Метод код с, как это теперь выглядит следующим образом:Проверьте, содержит ли переменная массив
@SuppressWarnings("unchecked")
public static <T> T[] reverse(T[] array) {
T[] ret = Array.newInstance(array.getClass().getComponentType(), array.length);
for(int i = 0; i < array.length; i++) {
if (array[i].getClass().getComponentType() != null) {
ret[array.length - 1 - i] = (T) reverse((T[]) array[i]); // the exception (see below) occurs here
} else {
ret[array.length - 1 - i] = array[i];
}
}
return ret;
}
Когда я попытался запустить этот метод с 2-мерной String
матрицы, она работала хорошо. Теперь я попытался использовать 2-мерную матрицу int
вместо этого и я получаю следующее исключение:
Exception in thread "main" java.lang.ClassCastException: [I cannot be cast to [Ljava.lang.Object;
Как пришел этот код работает с String
массивами, но не с int
массивами? Как я могу исправить код для работы с массивами int
?
@EDIT Я только заметил, что задал этот вопрос неправильно. * facepalms * То, что я изначально хотел узнать, это: как проверить, является ли массив array[i]
или нет?
, поскольку ИНТ не является объектом – mprabhat