[Ljava.lang.Object; cannot be cast to [Ljava.lang.Long

阅读更多

问题描述

今天在进行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 map1 = new HashMap();

        map1.put("1", "1");
        map1.put("2", "2");
        map1.put("3", "3");

        String[] str = (String[]) map1.keySet().toArray();

        for(int i=0; i 
  

 

原因分析

 

toArray()的返回值是 object[]数组对象,需要我们使用toArray()的另一个重载方法

toArray(Object[] obj)。

 

解决方法

String[] str = map1.keySet().toArray(new String[map1.size()]);

 

 

你可能感兴趣的:([Ljava.lang.Object; cannot be cast to [Ljava.lang.Long)