Вот код:Дженерик типа стирания в Java
public class Main {
public static void main(String[] args) {
Gen<Integer> g = new Gen<Integer>(5);
System.out.println(g.getClass());
System.out.println(g.ob.getClass());
}
}
class Gen<T> {
T ob;
public Gen(T x) {
ob = x;
}
}
А вот выходного
class Gen // This I understand
class java.lang.Integer // But if type erasure is happening, shouldn't this be java.lang.Object?
Я понял, что параметр Типа T
стирается во время выполнения, но тогда почему параметр типа ob
выживает во время выполнения?
Вам нужно будет начать различать переменные, ссылки и объекты, –
Если 'Car c = new Mercedes();' как вы думаете, должен быть результат 'c.getClass()' и почему? – Pshemo
спасибо всем за ответ, я получаю это сейчас – Ramanlfc