Classe générique utilisant une autre classe générique
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 :
Code:
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);
}
} |
Résultat de la compilation :
Code:
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 |
Si je supprime le "<T>" de "TestGenerics" pour en faire une classe non paramétrée, je n'ai plus l'erreur.
Quel est le problème ?