Generics типобезопасны?
Если мы берем гомогенные джерики, т.е. которые используются в Java, являются ли они типобезопасными?
Если они все приводятся к одному общему типу при стирании, разве не должно быть так, что, например, в List<String> можно добавить Integer?
Ответы (1 шт):
Автор решения: Sergey Gornostaev
→ Ссылка
Стирание происходит после компиляции, поэтому на уровне исходного кода добавить Integer в List<String> нельзя, компилятор не позволит. Можно на уровне байткода, но если вы занимаетесь грязными хаками в рантайме, то вы сам себе злой буратино. Обобщённые типы - это помощь программисту от случайных ошибок, а не защита от злонамеренных действий.