Java представил стирание стилей с generics в Java 5, чтобы они работали на старых версиях Java. Это была комбинация совместимости. С тех пор мы потеряли эту совместимость [1] [2] [3] --bytecode, которая может быть запущена на более поздних версиях JVM, но не ранее. Это выглядит как худший вариант: мы потеряли информацию о типе, и мы по-прежнему не можем запустить байт-код, скомпилированный для более ранних версий JVM в старых версиях. Что случилось?
В частности, я спрашиваю, есть ли какие-либо технические причины, по которым стирание стилей невозможно удалить в следующей версии JVM (предполагая, что, как и предыдущие выпуски, его байт-код в любом случае не сможет работать в последней версии).
[3]: Стирание типа может быть обращено таким же образом, как retrolambda для тех, кому это действительно нравится.
Редактирование: Я думаю, что обсуждение определения обратной и обратной совместимости заслоняет вопрос.