Durante la lettura del tutorial ufficiale di Java sui generici, ho scoperto che puoi limitare l'argomento type (in questo caso è T
) per estendere una classe e / o più interfacce con l'operatore 'and' ( &
) in questo modo:
<T extends MyClass & Serializable>
Ho sostituito il &
con ,
(per errore e funziona ancora, con un piccolo avvertimento).
La mia domanda è, c'è qualche differenza tra questi due:
<T extends MyClass & Serializable>
<T extends MyClass , Serializable> // here is with comma
E il metodo di esempio:
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;
}