3

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;
NPE
  • 438,426
  • 93
  • 887
  • 970
Mariusz Jamro
  • 27,234
  • 22
  • 104
  • 144

1 Answers1

9

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.

NPE
  • 438,426
  • 93
  • 887
  • 970