I defined List
When I\'m trying to convert it to an array in the following way:
The way to do it is this:
Integer[] array = stack.toArray(new Integer[stack.size()]);
For the record, the reason that your code doesn't compile is not just type erasure. The problem is that List<T>.toArray()
returns an Object[]
and it has done this before generics were introduced.
Because of type erasure, the ArrayList does not know its generic type at runtime, so it can only give you the most general Object[]. You need to use the other toArray method which allows you to specify the type of the array that you want.
Integer[] array= stack.toArray(new Integer[stack.size()]);
Do this instead:
Integer[] array = stack.toArray(new Integer[stack.size()]);
We need to pass the "seed" array as an argument to the toArray
method.