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 : 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);
    }
}
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
> 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 ?