Ecco il codice:Generics cancellazione del tipo in 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;
}
}
Ed ecco l'output
class Gen // This I understand
class java.lang.Integer // But if type erasure is happening, shouldn't this be java.lang.Object?
ho capito che il parametro Type T
viene cancellato in fase di esecuzione, ma allora perché è il parametro tipo di ob
sopravvivendo al runtime?
Avrai bisogno di iniziare a distinguere tra variabili, riferimenti e oggetti, –
Se 'Car c = new Mercedes();' cosa pensi dovrebbe essere il risultato di 'c.getClass()' e perché? – Pshemo
grazie a tutti per aver risposto ora lo ricevo – Ramanlfc