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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
implements Comparable<Integer>
Merci de vos éclairages...