[Ljava.lang.Object; cannot be cast to [Ljava.lang.Long 博客分类: 原创 ClassCastException
程序员文章站
2024-02-24 12:28:22
...
问题描述
今天在进行Java集合类转换为数组对象的时候报如下错误:
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Long;
自己代码如下:
import java.util.HashMap; import java.util.Map; public class demo { public static void main(String[] args) { Map<String, String> map1 = new HashMap<String, String>(); map1.put("1", "1"); map1.put("2", "2"); map1.put("3", "3"); String[] str = (String[]) map1.keySet().toArray(); for(int i=0; i<str.length;i++) { System.out.println(str[i]); } } }
原因分析
toArray()的返回值是 object[]数组对象,需要我们使用toArray()的另一个重载方法
toArray(Object[] obj)。
解决方法
String[] str = map1.keySet().toArray(new String[map1.size()]);