class Generic<T> {
void method(T t) {
print(t.getClass().getSimpleName());
}
}
public class Program {
static public void main(String[] args) {
Generic<String> g = new Generic1<>();
g.method(new String());
}
}
Как и ожидалось, выход String
. Почему информация о типе была сохранена, если произошло стирание типа? Если я правильно ее понимаю, выход должен был быть Object
.Почему информация сохранялась после стирания типа?
При запуске 't' определен, он имеет тип. Некоторое чтение: https://stackoverflow.com/questions/339699/java-generics-type-erasure-when-and-what-happens?rq=1 –
Передача (или сохранение) экземпляра класса является классическим способом чтобы обойти стирание стилей. –