Salut,

Je me demande pourquoi dans ce cas particulier, il y a un warning:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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?