Qual o nome da técnica que o Java utiliza para implementar ...

Próximas questões
Com base no mesmo assunto
Ano: 2018 Banca: FEPESE Órgão: CELESC Prova: FEPESE - 2018 - CELESC - Analista de Sistemas |
Q1248114 Programação
Qual o nome da técnica que o Java utiliza para implementar os tipos genéricos respeitando códigos legados? Isto é, tornando o código genérico compatível com códigos não genéricos preexistentes, de modo que alterações na sintaxe da linguagem Java ou em JVM não invalidem códigos mais antigos?
Alternativas

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