java.lang.ArrayStoreException

Рейтинг: 0Ответов: 2Опубликовано: 16.04.2015

Имею массив типа Object и нужно переделать его в массив String.

Делаю это вот так:

public static String[] convertorObjectToString(Object[] objArr)
{
    String [] strArr = Arrays.copyOf(objArr, objArr.length, String[].class);
    return strArr;
}

Но получаю ошибку:

java.lang.ArrayStoreException

Что не так?

Ответы

▲ 4Принят

Ошибка говорит о том, что исходный массив не весь состоит из String.

Можно сделать надежнее :

String[] strArr = new String[objArr.length]
for(int i = 0; i < objArr.length; i++) {
 strArr[i] = String.valueOf(objArr[i]);
}
▲ 1

А так нельзя. Если у тебя в исходном массиве хранятся Object и их фактический тип НЕ String, то их нельзя положить в массив String[]. Можно конечно вызывать у исходного массива метод toString() как это сделал @Andrew Bystrov.