Salut,
Je me demande pourquoi dans ce cas particulier, il y a un warning:
1 2 3 4 5 6 7 8 9
| public class GenericsTest<T> {
public void call() {
method(new ArrayList<T>(), new LinkedList<T>());
}
public void method(Collection<T>... col) {}
} |
Ce qui est souligné provoque le warning:
1 2
| Type safety : A generic array of Collection<T> is created for a varargs
parameter |
Quel est l'intérêt?
Si on faisait:
method(new Collection[] { new ArrayList<T>(), new LinkedList<T>() });
ok, mais là, avec le varargs, il ne peut pas y avoir de problème de type, vu que :
method(new ArrayList<Integer>(), new LinkedList<String>());
par exemple provoque une erreur de compilation...
Le "type safety" est donc garanti à la compilation, pourquoi ce warning?
Partager