В офіційному навчальному посібнику Java щодо дженерики пояснюється стирання типу та чому його додано до компілятора:
Коли загальний тип інстанціюється, компілятор перекладає ці типи технікою, званою стиранням типу - процесом, коли компілятор видаляє всю інформацію, що стосується параметрів типу та аргументів типу, у межах класу чи методу. Стирання типу дозволяє програмам Java, які використовують дженерики, підтримувати бінарну сумісність з бібліотеками Java та програмами, створеними до generics.
Це, швидше за все, було прагматичним підходом чи, можливо, найменш болісним. Однак тепер, коли генеричні засоби широко підтримуються у всій галузі, що можна зробити для того, щоб нам не було потрібно стирання типу? Чи це можливо, якщо не потрібно порушувати зворотну сумісність, чи це можливо, чи це практично?
Чи стало останнє твердження у цитаті вище, яке було самореференційним? Тобто: "стирання типу дозволяє програмам Java, які використовують дженерики, підтримувати бінарну сумісність з бібліотеками Java та програмами, створеними з версіями Java, які виконують стирання типу."