Java Array Cast

Casting the array obtained by invoking the toArray() method on a collection yields a ClassCastException.
For example:
String[] strings = listOfStrings.toArray();
will throw the ClassCastException.
The trick is to use the overloaded version of toArray(), which takes an array as parameter. This the javadoc description of the method
toArray(T[] a)
"Returns an array containing all of the elements in this list in the correct order; the runtime type of the returned array is that of the specified array."

The solution is therefore to do this:

String[] sv = (String[])v.toArray(new String[0]);

Comments are closed.