我试图做到这一点:的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'可以是抽象类或接口。在这种情况下,在任何情况下都不能直接*实例化。 –