繁体   English   中英

特殊场景:java.lang.ClassCastException: [Ljava.lang.Object; 不能转换为 [Ljava.lang.String;

[英]Special Scenario : java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

我只是想删除以下异常。 java.lang.ClassCastException: [Ljava.lang.Object; 不能转换为 [Ljava.lang.String; 请帮帮我。

我需要将它转换为 List<String[]>。 我该如何处理?

  List<Object[]> values =  query.getResultList();
    List<String[]> strings = new ArrayList<>();
    for (Object[] object : values) {
        strings.add((String[]) object);
    }

值 : = [obj1,obj2,obj3]

obj1 = "1", "01";
obj2 = "1", "02";
obj3 = "1:, "03";

我认为你应该使用 System.arraycopy

package com.lsk.backend;


import java.util.*;
import java.util.List;


/**
 * @ClassName : Test  //className
 * @Description :   //description
 * @Author : shikai.liu  //author
 * @Date: 2020-08-27 09:13  //Date
 */
public class Test {
    public static void main(String[] args) {
        List<Object[]> values =  getResultList();
        List<String[]> strings = new ArrayList<>();
        for (Object[] object : values) {
            String[]dst=new String[object.length];
            System.arraycopy(object,0,dst,0,dst.length);
            strings.add(dst);
        }
        System.out.println(strings);
    }
    public static List<Object[]>getResultList(){
        Object[][]result={
                {
                    "0","1"
                },
                {
                        "0","2"
                },
                {
                        "0","3"
                },
        };
        List<Object[]>ss=Arrays.asList(result);
        return ss;
    }

}
List<Object[]> values =  query.getResultList();
List<String[]> strings = new ArrayList<>();
values.forEach(object -> {
   String [] stringArray = new String[object.length];
   System.arraycopy(object, 0, stringArray, 0,object.length);
   strings.add(stringArray);
});

这最终对我有用

values.forEach(o->{ strings.add(Arrays.copyOf(o, o.length, String[].class));});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM