Qual o nome da técnica que o Java utiliza para implementar ...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: B - Erasure
Vamos mergulhar no conceito por trás da alternativa correta. A técnica conhecida como Erasure (Apagamento, em português) é utilizada pelo Java para implementar tipos genéricos. O uso de generics foi introduzido no Java na versão 5 para proporcionar segurança de tipos em coleções e outros tipos de dados, permitindo que eles fossem parametrizados.
O motivo pelo qual o Erasure é relevante é que ele permite a compatibilidade do novo código, que utiliza genéricos, com o código legado que não os utiliza. Isso é feito "apagando" as informações de tipo genérico em tempo de compilação e substituindo-as por suas classes ou interfaces de limite superior (em grande parte das vezes, a classe Object
). O que isso significa é que durante a execução do programa, os tipos genéricos não contêm informações sobre seus parâmetros de tipo.
Essa abordagem garante que não sejam necessárias alterações na Java Virtual Machine (JVM) e que o código mais antigo, escrito antes da introdução dos genéricos, continue funcionando sem modificação. Dessa forma, a introdução de genéricos no Java foi feita de maneira a não quebrar a compatibilidade com versões anteriores da linguagem.
O conhecimento sobre Erasure é importante para desenvolvedores Java, pois ele influencia como os genéricos são escritos e utilizados. Por exemplo, devido ao apagamento, não é possível saber em tempo de execução o tipo genérico de uma coleção, o que impede certas operações que seriam possíveis se o tipo fosse reificado (ou seja, preservado em tempo de execução).
Em resumo, ao compreender o conceito de Erasure e como ele é aplicado em Java, você ganha uma visão mais clara sobre o funcionamento interno da linguagem e sobre como manter a compatibilidade com versões anteriores ao trabalhar com tipos genéricos.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Erasure
Após verificar em tempo de compilação se a sintaxe do código está de acordo com as específicações de Generics e Java, o compilador irá gerar o código em Java byte-codes, mas sem a sintaxe generics, convertendo isso para o que é chamado de raw type. Todo o tipo de informação relacionada ao generics é removida durante essa fase, o nome desta operação é chamada Type Erasure.
Fonte:http://www.mauda.com.br/?p=468
Quando o compilador traduz o método genérico em bytecodes Java, ele remove a seção de parâmetro de tipo e substitui os parâmetros de tipo por tipos reais. Esse processo é conhecido como erasure. Por padrão, todos os tipos genéricos são substituídos pelo tipo Object.
Alternativa: B
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo