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 :
j'ai des erreurs dans eclipse du style : Type mismatch: cannot convert from ArrayList<Integer> to ArrayList<T>
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); } }
pourtant Integer est bien, comme les autres classes utilisées :Merci de vos éclairages...
Code : Sélectionner tout - Visualiser dans une fenêtre à part implements Comparable<Integer>
Partager