Bonjour,

J'essaye d'instancier un tableau d'éléments de type générique T dans une constructeur d'une classe générique :

Code java : 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
 
 
    class Plan<T> {
            public Plan(T[][] plan) {
                    this.plan = plan;
            }
 
            public Plan(int yTaille, int xTaille, int valeurParDefaut) {
                    plan = new T[yTaille][xTaille];
 
            }
 
            public T recevoirElement(int y, int x) {
                    return plan[y][x];
            }
 
            public int recevoirLargeur() {return xTaille;}
            public int recevoirHauteur() {return yTaille;}
 
            private T[][] plan;
            private int yTaille, xTaille;
    }

L'erreur est ligne 9. Je sais pourquoi cela est interdit (limitation de la programmation générique en Java ; T est en fait remplacé par Object), mais j'aimerais bien contourner cette limitation. Je peux procéder ainsi :

Code "java : Sélectionner tout - Visualiser dans une fenêtre à part
plan = (T[][]) new Object[yTaille][xTaille];

Mais ce n'est pas très propre et il reste un panneau attention à la compilation.

Merci d'avance !