List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> m1 = new HashMap<String, Object>();
m1.put("1","1");
Map<String, Object> m2 = new HashMap<String, Object>();
m2.put("2","2");
list.add(m1);
list.add(m2);
System.out.println(list.toString());
Map[] arr = new HashMap[list.size()];
Object[] objs = list.toArray();
arr = (Map[])objs;运行代码,出错
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;
Map<String, Object> m1 = new HashMap<String, Object>();
m1.put("1","1");
Map<String, Object> m2 = new HashMap<String, Object>();
m2.put("2","2");
list.add(m1);
list.add(m2);
System.out.println(list.toString());
Map[] arr = new HashMap[list.size()];
Object[] objs = list.toArray();
arr = (Map[])objs;运行代码,出错
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;
解决方案 »
- 超级菜鸟问题(绝对相当送分)--cmd中运行.class文件
- Vector 里面能不能用自定义类?
- 北漂程序员的乐园
- 求助!!java Communications API 的安装
- 由于公司项目中遇到一个问题,怎么样在客户端用Java Applet截取所需要图片
- JVM中的本地方法以及多线程管理问题。(100分)相求!!!
- 怎样才能实现删除鼠标所选的行啊??
- 请花1分钟告诉俺一个简单问题
- 国内有什么讲解Jbiulder的好书?请告知,谢谢!!
- 我想学JAVA可是不知道用什么开发工具啊
- Flowlayout如何加JScrollPane
- 没有析构函数,这个功能怎么实现? 我考,是我傻,还是java傻。
要么遍历一个一个强制转换。要么这样Map[] m =List.toArray(new Map[0]);即1楼说的带参数toArray方法。
给你下面这个例子你说明白了
Object obj[] = new Object[]{1,2,3};
System.out.println(Integer[].class.isInstance(obj));
System.out.println(Object[].class.isInstance(obj));
Object obj2[] = new Integer[]{1,2,3};
System.out.println(Integer[].class.isInstance(obj2));
System.out.println(Object[].class.isInstance(obj2));//这个输出true是因为Object是Integer的super
你会发现,输出为为false\true\false\true,如果尝试把obj转制成Integer就会报错
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class Test2 {
public static void main(String[] args) {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> m1 = new HashMap<String, Object>();
m1.put("1","1");
Map<String, Object> m2 = new HashMap<String, Object>();
m2.put("2","2");
list.add(m1);
list.add(m2);
System.out.println(list.toString());
Map[] arr = new HashMap[list.size()];
Object[] objs = list.toArray(arr);//这儿,,告诉转换时,Object[]里面存储的是Map,
//不写的话Object[]里面放的都是Object类型的,下一步转换当然是错误的了。因为里面不对应。
arr = (Map[])objs;
}
}
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class Test2 {
public static void main(String[] args) {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> m1 = new HashMap<String, Object>();
m1.put("1","1");
Map<String, Object> m2 = new HashMap<String, Object>();
m2.put("2","2");
list.add(m1);
list.add(m2);
System.out.println(list.toString());
Map[] arr = new HashMap[list.size()];
Object[] objs = list.toArray(arr);//这儿,,告诉转换时,Object[]里面存储的是Map,
//不写的话Object[]里面放的都是Object类型的,下一步转换当然是错误的了。因为里面不对应。
arr = (Map[])objs;
}
}
Object[] objs = list.toArray(arr);