Вот как метод returnObj способен возвращать объект типа типа TestGen, даже если «Тип Erasure» уменьшил T до Object ,Как верный тип объекта возвращается, хотя тип Erasure уменьшил T до объекта
class TestGen
{
}
class MyGeneric<T>
{
T obj;
MyGeneric(T giveObj)
{
obj = giveObj;
}
T returnObj()
{
return obj;
}
}
public class TestGeneric {
public static void main(String[] args) {
MyGeneric<TestGen> mg = new MyGeneric<TestGen>(new TestGen());
TestGen tg = mg.returnObj();
}
}
Поскольку 'TestGen' наследует' Object'? – SLaks
Объекты не меняются от одного типа к другому. Как только объект TestGen, всегда объект TestGen. –