Alex Rivera | Logout

Collection.toArray() java.lang.ClassCastException

Asked 2012-02-15T12:33:59.187
19
import java.util.HashMap;
import java.util.Map;


public class Main
{
    public static void main(String[] args)
    {
        Map<Integer,Class> map=new HashMap<Integer,Class>();
        map.put(0,Main.class);
        Class[] classes=(Class[])map.values().toArray();
        for (Class c:classes)
            System.out.println(c.getName());
    }

}

I try cast in this line Class[] classes=(Class[])map.values().toArray(); but get exception.

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Class; at Main.main(Main.java:11)

What is problem?

Edit
Report

2 Answers

1

Use T[] toArray(T[] a) from Collection instead.

answered 2012-02-15T12:39:00.367
0

Use this code for listing out the values of map i.e. class names:

Object[] array = map.values().toArray();
for (Object object : array) {
    System.out.println(object.toString());
}
answered 2012-02-15T12:51:12.980

Your Answer