欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

 

 

相关标签: ClassCastException