1

私は抽象クラスと2つの(今のところ)ドータークラスを持っています。

メイン クラス :

public abstract class Entite<T> {
    public Entite(int ligne, int colonne, Etat etat) {
        ...
    }
/* Some method here*/
}

娘 1 (娘 2 はほぼ等しい):

public class Cellule extends Entite<Cellule> {
    public Cellule(int ligne, int colonne, Etat etat) {
        super(ligne, colonne, etat);
    }
/** Override some method here */
}

今、私は他のクラスでジェネリックを使いたいと思っています。

public class Grille<T extends Entite<T>> {
    protected final T[][] grille;
    public Grille(int dimension, int nbCellulesInitiales, Class<T> classe) {
        grille = (T[][])Array.newInstance(classe, 1); // It's good ?
        Etat etat = Etat.Morte;
        for (int i = 0; i < dimension; i++) {
            for (int j = 0; j < dimension; j++) {
                grille[i][j] = new T(i, j, etat); //How can I create T (Cellule) object ?
            }
        }

Java は私にとって新しいものなので、ばかげたエラーをしていないことを願っています ;)

4

2 に答える 2

0

より一般的な方法は、を渡す代わりにファクトリを渡すことClassです。

于 2013-11-01T23:35:09.560 に答える