It seems to me that the List instance created by Arrays.asList () does not properly implement the contract of the toArray () method. From List.toArray () javadoc:
Note that toArray(new Object[0]) is identical in function to toArray().
However, pay attention to the following test:
public static void main(String... args) { System.out.println(Arrays.asList(2, 7).toArray()); System.out.println(Arrays.asList(2, 7).toArray(new Object[0])); }
and conclusion:
[Ljava.lang.Integer;@3e25a5 [Ljava.lang.Object;@19821f
Note that according to javadoc, toArray () should create an array of type Object [], but instead, Arrays.<E>asList().toArray() creates an array of type E [].
The reason you get an ArrayStoreException is because your array is of type Integer [] when it must be of type Object [].
Jimn
source share