特殊场景:java.lang.ClassCastException:[Ljava.lang.Object;不能强制转换为[Ljava.lang.String;
我只是想删除下面的异常。 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
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());