<html>
<body>
Reports two types of suspicious calls to <b>Collection.toArray()</b>.
The first type is any calls where the type of the specified array argument is not of the same type as the array type to which the result is casted.
Example:
<pre><code>
void m(List list) {
  Number[] ns = (Number[])
      list.toArray(new String[list.size()]);
}
</code></pre>
The second type is any calls where the type of the specified array argument does not match the type parameter of the collection declaration.
Example:
<pre><code>
void m(List&lt;Number&gt; list) {
  Number[] ns =
      list.toArray(new String[list.size()]);
}
</code></pre>
<!-- tooltip end -->
<p>

</body>
</html>