Je suis en train de le faire:Java: instanciation d'une classe générique sans constructeur par défaut
public class BaseTable<T extends TableEntry>
{
protected int mRows;
protected int mCols;
protected ArrayList<T> mEntries;
public BaseTable(int rows, int cols)
{
mRows = rows;
mCols = cols;
mEntries = new ArrayList<T>();
for (int i = 0; i < rows; i++)
{
mEntries.add(new T(cols)); //this obv. doesn't work
}
}
}
génériques instanciation est assez difficile comme il est, mais ce qui rend encore plus difficile est que T
ici n'a pas constructeur par défaut, il prend un seul paramètre int
dans son constructeur.
Comment cela peut-il être fait? J'ai également demandé un follow up question ici aussi. Je vous serais reconnaissant de bien vouloir répondre à cette question également.
Cette question est liée, mais n'est pertinente que si les classes sont supposées avoir un constructeur par défaut.
** et **, 'T' peut être une classe abstraite ou de l'interface. Dans ce cas, il ne pouvait pas être instancié * directement * en toutes circonstances. –