Java: Klasa <T> i Klasa: Różnica w przypadku używania z / poza klasą
Mam klasę, która musi użyćClass<T>
parametr (patrz moje poprzednie pół-powiązanepytanie). To jest:
public class BaseTable<T extends TableEntry>
{
protected Class<T> mClass;
...
public BaseTable(int rows, int cols, Class<T> clasz)
{
...
mClass = clasz;
}
public BaseTable(int rows, int cols)
{
this(rows, cols, StringTableEntry.class);
//Does NOT compile:
//expected [int, int, Class<T>], but got
//[int, int, Class<blah.blah.StringTableEntry>]
}
...
}
Zastanawiam się, dlaczego konstruktor (z 2 parametrami) nie działa, ale kiedy wywoływam dokładnie to samo z klasy zewnętrznej, jak poniżej:
mSomeTable = new BaseTable<StringTableEntry>(2, 2, StringTableEntry.class);
Kompiluje się i działa bez narzekania. Dlaczego tak i jak to obejść?
Dzięki!