简体   繁体   中英

Cast List<Object[]> to Object[][] in Java

How to turn List of arrays into two dimensional array in Java?

//Prepare the list
List<Object[]> conf = new LinkedList<Object[]>();
conf.add(new Object[]{ "FOO", "BAR"});
conf.add(new Object[]{ "FOO", "BAR"});

I tried:

Object[][] array = (Object[][]) conf.toArray(new Object[0]);

But it fails at ClassCastException :

java.lang.RuntimeException: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [[Ljava.lang.Object;

You are missing a pair of square brackets:

    Object[][] array = conf.toArray(new Object[0][]);
                                                 ^^

Or, if you wish to save on one unnecessary memory allocation:

    Object[][] array = conf.toArray(new Object[conf.size()][]);

The cast to Object[][] is unnecessary once the argument to toArray() has the correct type.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM