mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 22:51:17 +07:00
20 lines
1.1 KiB
HTML
20 lines
1.1 KiB
HTML
<html>
|
|
<body>
|
|
Reports <code>Collection.toArray()</code> calls that are not in the preferred style, and suggests applying the preferred style.
|
|
<p>There are two styles to convert a collection to an array:</p>
|
|
<ul>
|
|
<li>A pre-sized array, for example, <code>c.toArray(new String[c.size()])</code></li>
|
|
<li>An empty array, for example, <code>c.toArray(new String[0])</code></li>
|
|
</ul>
|
|
<p>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.</p>
|
|
<p>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 <code>size</code> and <code>toArray</code>
|
|
calls. This may result in extra <code>null</code>s at the end of the array if the collection was concurrently
|
|
shrunk during the operation.</p>
|
|
<!-- tooltip end -->
|
|
<p>Use the inspection options to select the preferred style.</p>
|
|
</body>
|
|
</html> |