void m(List list) {
Number[] ns = (Number[])
list.toArray(new String[list.size()]);
}
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:
void m(List<Number> list) {
Number[] ns =
list.toArray(new String[list.size()]);
}