Bonjour,
J'ai un problème étrange à la compilation d'une classe générique utilisant elle-même des génériques, et que je ne m'explique pas. J'ai réduit le problème dans la classe suivante :
Fichier TestGenerics.java :
Résultat de la compilation :
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 import java.util.List; import java.util.ArrayList; public class TestGenerics<T> { public List<String> getList() { return new ArrayList<String>(); } public static void main(String[] args) { TestGenerics test = new TestGenerics(); String string = test.getList().get(0); } }
Si je supprime le "<T>" de "TestGenerics" pour en faire une classe non paramétrée, je n'ai plus l'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 > java -version java version "1.5.0_06" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05) Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode) > javac TestGenerics.java TestGenerics.java:13: incompatible types found : java.lang.Object required: java.lang.String String string = test.getList().get(0); ^ 1 error
Quel est le problème ?
Partager