字符串数组中抛出的类转换异常[重复]
Posted
技术标签:
【中文标题】字符串数组中抛出的类转换异常[重复]【英文标题】:class cast exception thrown in string array [duplicate] 【发布时间】:2015-06-21 07:29:59 【问题描述】:我只是将两个字符串数组附加到一个数组列表中,然后将其转换为字符串数组以将返回变量传递为string[]
public static void main(String[] args)
String [] a = "america", "bakrain", "canada";
String [] b = "denmark", "europe" ;
try
List<String> listString = new ArrayList<String>(Arrays.asList(a));
listString.addAll(Arrays.asList(b));
String [] outResult= (String[])listString.toArray();
System.out.println(outResult);
catch (Exception e)
e.printStackTrace();
错误来了
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
at myFirst.myClass.main(myClass.java:26)
如何解决这个问题?
【问题讨论】:
String [] outResult= new String[listString.size()]; listString.toArray(outResult); 【参考方案1】:listString.toArray();
将返回 Object[]
,而不是 String[]
【讨论】:
【参考方案2】:您需要单独转换数组中的每个成员,因为结果是 Object[] 而不是 String[]
或者干脆做
String [] outResult= listString.toArray(new String[listString.size()]);
【讨论】:
【参考方案3】:使用
String[] outResult = (String[]) listString.toArray(new String[0]);
【讨论】:
【参考方案4】:尝试以下解决方案:
public static void main(String[] args)
// TODO Auto-generated method stub
String [] a = "america", "bakrain", "canada";
String [] b = "denmark", "europe" ;
try
List<String> listString = new ArrayList<String>(Arrays.asList(a));
listString.addAll(Arrays.asList(b));
System.out.println(listString);
String [] outResult= new String[listString.size()];
int i=0;
for(String str: listString)
outResult[i]=str;
i++;
catch (Exception e)
e.printStackTrace();
【讨论】:
以上是关于字符串数组中抛出的类转换异常[重复]的主要内容,如果未能解决你的问题,请参考以下文章