Lors de la lecture de la Java tutoriel officiel sur les génériques, j'ai trouvé que vous pouvez restreindre le type d'argument (dans ce cas, est - T
) pour étendre une classe et/ou plusieurs interfaces avec le 'et' opérateur (&
) comme ceci:
<T extends MyClass & Serializable>
J'ai remplacé l' &
avec ,
(par erreur et fonctionne toujours, avec une petite mise en garde).
Ma question est, quelle est la différence entre ces deux:
<T extends MyClass & Serializable>
<T extends MyClass , Serializable> // here is with comma
Et l'exemple de la méthode:
static <T extends MyClass & Serializable> ArrayList<T> fromArrayToCollection(T[] a) {
ArrayList<T> arr = new ArrayList<T>();
for (T o : a) {
arr.add(o); // Correct
}
return arr;
}