另一种将包含字符串的ArrayList转换为Java中的字符串数组的方法?

时间:2014-07-08 12:23:05

标签: java arrays string arraylist type-conversion

我已经检查了以下stackoverflow源来解决我的问题:

StackOverflow link

但是,在应用顶级解决方案时,我仍然会收到错误,如下所示:

我的清单在此处定义:

List linhaInicial = new ArrayList();

我的转换是在这里完成的:

String[] convertido = linhaInicial.toArray(new String[linhaInicial.size()]);

问题是我仍然收到以下错误:

Error:(86, 59) java: incompatible types
required: java.lang.String[]
found:    java.lang.Object[]

我的转换在某种程度上仍然会返回Object[],现在应该返回String[]

任何解决方案?

谢谢!

4 个答案:

答案 0 :(得分:5)

请勿使用raw types

List linhaInicial = new ArrayList();

应该是

List<String> linhaInicial = new ArrayList<>();

答案 1 :(得分:2)

更改:

List linhaInicial = new ArrayList(); // can contain any Object. 
             //So compiler throws an error while converting an Object to String.

List<String> linhaInicial = new ArrayList<String>(); // using Generics ensures
                          //that your List can contain only Strings, so, compiler
                            //will not throw "incompatible types" error

答案 2 :(得分:1)

始终尝试在声明中包含list元素的类型:

List<String> linhaInicial = new ArrayList<String>();

尽可能避免使用原始类型。

答案 3 :(得分:1)

你必须改变

List linhaInicial = new ArrayList(); // you are using raw type List

List<String> linhaInicial = new ArrayList();// you have to use String type List