Généricité et fonction Collections.sort
Bonjour à tous,
Je me prends un peu la tête avec la généricité, et malgré mes lectures sur le net je ne comprends pas pourquoi ceci ne fonctionne pas :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
public static <T extends Comparable<? super T>> List<T> getListFromType(int iType)
{
ArrayList<T> list = null;
switch (iType)
{
case 1:
list = new ArrayList<Integer>();
list.add(4);
list.add(7);
list.add(1);
list.add(2);
break;
case 2:
list = new ArrayList<Double>();
list.add(4.);
list.add(0.1);
list.add(2.);
break;
case 3:
list = new ArrayList<String>();
list.add(new String("a"));
list.add("z");
list.add("e");
list.add("r");
list.add("t");
list.add("y");
break;
default:
break;
}
return list;
}
public static <T extends Comparable<? super T>> void main(String[] args)
{
List<T> list1 = getListFromType(1);
Collections.sort(list1);
for (T item: list1)
{
System.out.println(item);
}
List<T> list2 = getListFromType(2);
Collections.sort(list2);
for (T item: list2)
{
System.out.println(item);
}
List<T> list3 = getListFromType(3);
Collections.sort(list3);
for (T item: list3)
{
System.out.println(item);
}
} |
j'ai des erreurs dans eclipse du style : Type mismatch: cannot convert from ArrayList<Integer> to ArrayList<T>
pourtant Integer est bien, comme les autres classes utilisées :
Code:
implements Comparable<Integer>
Merci de vos éclairages...