Collection.toArray()
calls that are not in the preferred style, and suggests applying the preferred style.
There are two styles to convert a collection to an array:
c.toArray(new String[c.size()])
c.toArray(new String[0])
In older Java versions, using a pre-sized array was recommended, as the reflection call necessary to create an array of proper size was quite slow.
However, since late updates of OpenJDK 6, this call was intrinsified, making
the performance of the empty array version the same, and sometimes even better, compared
to the pre-sized version. Also, passing a pre-sized array is dangerous for a concurrent or
synchronized collection as a data race is possible between the size
and toArray
calls. This may result in extra null
s at the end of the array if the collection was concurrently
shrunk during the operation.
Use the inspection options to select the preferred style.