2013-09-11 1 views
-1

Я хочу знать, если это возможно, чтобы преобразовать Java List из String с в массив String с:ява Список строк в массив строк

Я попытался это:

List<String> products = new ArrayList<String>(); 
//some codes.. 
String[] arrayCategories = (String[]) products.toArray(); 

но дает мне сообщение об исключении:

java.lang.ClassCastException: java.lang.Object [] не может быть приведен к java.lang.String []

+0

@LalitPoptani Дубликат я нашел лучше: D – Maroun

+0

Дубликат Дубликат лучше или хуже: P –

+0

Проблема здесь не преобразование массива, но неправильное использование [] на новый ArrayList [String]() который должен быть новым ArrayList () .. Я собирался ответить, но вы, ребята, закрыли это. – mico

ответ

4
String[] array = products.toArray(new String[products.size()]); 
+0

он дает мне то же Исключение –

+0

@MouadELFakir, тогда вы, возможно, делаете что-то еще неправильно. Отправьте свой код, чтобы проверить, что вы испортили – Reddy

+0

да, спасибо, что я только что понял, что я был missig, я просто забыл заполнить свой список продуктов, я пускаю его, теперь он работает отлично, спасибо u;) –

2

Использование

String[] arrayCategories = products.toArray(new String[products.size()]); 

products.toArray() поместит список значений в массиве Object[], и так же, как вы не можете бросить объект типа суперкласса его производного типа, как

//B extands A 
B b = new A(); 

вы не можете сохранить или гипсе Object[] массив до String[] массив, поэтому вам нужно передать массив точного типа, который вы хотите вернуть.

Дополнительная информация here.

0

Попробуйте

List<String> products = new ArrayList<String>(); 
     String[] arrayCategories = products.toArray(new String[products.size()]); 
0

Это должно сделать трюк. У вас есть опечатка в первой строке.

List<String> products = new ArrayList<>(); 
String[] array = (String[]) products.toArray(); 

 Смежные вопросы

  • Нет связанных вопросов^_^