[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<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()]);

猜你喜欢

转载自nuistcc.iteye.com/blog/2290089