Java Array Cast

Posted: December 30th, 2011 | Author: | Filed under: Java | Tags: | No Comments »

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.