我試圖做到這一點:的Java:實例化一個泛型類沒有默認構造函數
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
。
這怎麼辦?
我在這裏也詢問了follow up question。如果你能回答這個問題,我會很感激。
這question是相關的,但只有在類別被假定爲具有默認構造函數的情況下才是相關的。
**和**,'T'可以是抽象類或接口。在這種情況下,在任何情況下都不能直接*實例化。 –