【问题标题】: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);

标签: java arrays arraylist casting


【解决方案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();
            }    
        
        
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-04-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多