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

特殊场景:java.lang.ClassCastException:[Ljava.lang.Object;不能强制转换为[Ljava.lang.String;,java,arrays,object,arraylist,casting,Java,Arrays,Object,Arraylist,Casting,我只是想删除下面的异常。 java.lang.ClassCastException:[Ljava.lang.Object;不能强制转换为[Ljava.lang.String; 请帮帮我 我需要将它转换为列表。我应该如何处理它 List<Object[]> values = query.getResultList(); List<String[]> strings = new ArrayList<>(); for (Object[] obj

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

我需要将它转换为列表。我应该如何处理它

  List<Object[]> values =  query.getResultList();
    List<String[]> strings = new ArrayList<>();
    for (Object[] object : values) {
        strings.add((String[]) object);
    }
List values=query.getResultList();
列表字符串=新的ArrayList();
对于(对象[]对象:值){
添加((字符串[])对象);
}
值:=[obj1、obj2、obj3]

obj1=“1”,“01”
obj2=“1”,“02”
obj3=“1:,“03”


我想你应该使用这个系统

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;
    }

}
package com.lsk.backend;
导入java.util.*;
导入java.util.List;
/**
*@ClassName:Test//ClassName
*@Description://Description
*@Author:shikai.liu//作者
*@Date:2020-08-2709:13//Date
*/
公开课考试{
公共静态void main(字符串[]args){
列表值=getResultList();
列表字符串=新的ArrayList();
对于(对象[]对象:值){
String[]dst=新字符串[object.length];
System.arraycopy(对象,0,dst,0,dst.length);
字符串。添加(dst);
}
System.out.println(字符串);
}
公共静态ListgetResultList(){
对象[][]结果={
{
"0","1"
},
{
"0","2"
},
{
"0","3"
},
};
Listss=Arrays.asList(结果);
返回ss;
}
}

我认为您应该使用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;
    }

}
package com.lsk.backend;
导入java.util.*;
导入java.util.List;
/**
*@ClassName:Test//ClassName
*@Description://Description
*@Author:shikai.liu//作者
*@Date:2020-08-2709:13//Date
*/
公开课考试{
公共静态void main(字符串[]args){
列表值=getResultList();
列表字符串=新的ArrayList();
对于(对象[]对象:值){
String[]dst=新字符串[object.length];
System.arraycopy(对象,0,dst,0,dst.length);
字符串。添加(dst);
}
System.out.println(字符串);
}
公共静态ListgetResultList(){
对象[][]结果={
{
"0","1"
},
{
"0","2"
},
{
"0","3"
},
};
Listss=Arrays.asList(结果);
返回ss;
}
}
列表值=query.getResultList();
列表字符串=新的ArrayList();
值。forEach(对象->{
String[]stringArray=新字符串[object.length];
System.arraycopy(object,0,stringArray,0,object.length);
添加(stringArray);
});
列表值=query.getResultList();
列表字符串=新的ArrayList();
值。forEach(对象->{
String[]stringArray=新字符串[object.length];
System.arraycopy(object,0,stringArray,0,object.length);
添加(stringArray);
});

这终于对我起作用了

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

这终于对我起作用了

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

您是否尝试强制转换对象数组的每个元素?我的意思是更深入的强制转换。是的。这是我最终需要的,但没有发生。出现了相同的异常…..Map resultMap=values.stream().collect(Collectors.groupingBy(o->(o)[0]。toString(),Collectors.mapping(o->(o)[1]。toString(),Collectors.toList()));您是否尝试过强制转换对象数组的每个元素?我是指更深入的强制转换。是的。这是我最终需要的,但没有发生。给出了相同的异常…..Map resultMap=values.stream().collect(Collectors.groupingBy(o->(o)[0]。toString(),Collectors.mapping(o->(o)[1]。toString(),Collectors.toList());