Java: Class <T> e Class: Difference quando usado de dentro / fora da classe
Eu tenho uma classe que precisa usar umClass<T>
parâmetro (veja meu semi-relacionado anteriorPergunta, questão) Isto é:
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>]
}
...
}
Gostaria de saber por que o construtor (com 2 parâmetros) não funciona, mas quando estou invocando exatamente a mesma coisa de uma classe externa, assim:
mSomeTable = new BaseTable<StringTableEntry>(2, 2, StringTableEntry.class);
Compila e roda sem reclamar. Por que sim e como contornar isso?
Obrigado!