私はこれをやろうとしています:
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
}
}
}
ジェネリックスのインスタンス化はそれなりに難しいですが、これをさらに難しくしているのは、T
ここにはデフォルトのコンストラクターがなく、コンストラクターで単一のint
パラメーターを使用することです。
これはどのように行うことができますか?
ここでもフォローアップの質問をしました。それにもお答えいただければ幸いです。
この質問は関連していますが、クラスにデフォルトのコンストラクターがあると想定される場合にのみ関連します。