Object[] againstObj = (Object[])anaginstList.get(0);
anaginstList.get(0) 是一个List 取得List的第一个对象。 把这个对象转为Object数组。然后就报异常 java.lang.String cannot be cast to [Ljava.lang.Object;
解释:
这个错误是很常见的错误,错误的提示已经很清楚了就是java的Object数组不能转换成为String[]数组,这就说明你要转换的数组它本身是Object类型的数组,但是你却非要把它转换为String类的数组,这当然是错误的。
示例:
package com.dada;
import java.util.ArrayList;
import java.util.Li......
答案就在这里:[Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?
List anaginstList=new ArrayList();
anaginstList.add("123");
Object againstObj = (Object)anaginstList.get(0);
System.out.println(againstObj);
List<Object[]> anaginstList1=new ArrayList();
anaginstList1.add(new Object[]{"22"});
Object[] againstObj1 = (Object[])anaginstList1.get(0);
System.out.println(againstObj1[0]);
如果 anaginstList 也是对象类型就不会错。取出来的对象声明类型要一致。
这里的话要看你的第一个对象是不是数组,如果是的话也不需要强转,因为objec是一个对象的父类。如果不是数组的话,用数组接收是错误的
集合泛型是基本类型没办法强转数组,集合类型。取出来,手动加到数组中
anaginstList.get(0);
这个取出的如果是数组是不会有问题的
很明显anaginstList.get(0);得到的不是数组
从异常上看,你从list中取出来的是String类型,正常应该是Object类型,你是不是用了泛型。而你必须保证list中第一个元素的类型是Object数组,才能强转成功。