Java Generics - Type Erasure

Os genéricos são usados ​​para verificações de tipo mais rígidas em tempo de compilação e para fornecer uma programação genérica. Para implementar o comportamento genérico, o compilador java aplica eliminação de tipo. O apagamento de tipo é um processo no qual o compilador substitui um parâmetro genérico pela classe real ou método de ponte. No apagamento de tipo, o compilador garante que nenhuma classe extra seja criada e não haja sobrecarga de tempo de execução.

Regras de apagamento de tipo

  • Substitua os parâmetros de tipo no tipo genérico por seus limites se forem usados ​​parâmetros de tipo limitado.

  • Substitua os parâmetros de tipo no tipo genérico por Object se forem usados ​​parâmetros de tipo ilimitado.

  • Insira moldes de tipo para preservar a segurança de tipo.

  • Gere métodos de ponte para manter o polimorfismo em tipos genéricos estendidos.