2013-07-29 2 views

ответ

4

Это связано с тем, что без параметров toArray создает массив Object с. Вам нужно вызвать перегрузку, которая принимает выходной массив в качестве параметра, и передать массив из String с, как это:

String[] names = (String[]) list.toArray(new String[list.size()]); 

В Java 5 или более поздней версии вы можете отказаться от актеров.

String[] names = list.toArray(new String[list.size()]); 
+2

не является литая излишним здесь? У меня нет компилятора, но я не понимаю, почему нет. Также ссылка на какое-то объяснение о co/contra variance сделает ответ полным, я думаю. – Voo

+0

@Voo Только в Java 5 и более поздних версиях; перед Java 5 это было необходимо. – dasblinkenlight

+0

@dasblinkenlight Я не знал, что Java 5 все еще используется. –

0

Вы пытаетесь создать класс из Object[]. Сам класс представляет собой массив типа Object. Вам нужно будет индивидуально, индивидуально, добавлять элементы в новый массив.

Или вы могли бы использовать метод уже реализован для того, путем выполнения следующих действий:

list.toArray(new String[list.size()]); 
Смежные вопросы