Sobre Java, considere as seguintes afirmativas. 1. Um const...
1. Um construtor de uma classe pode ser genérico tão somente se sua classe também o for. 2. Java permite que uma classe genérica seja usada sem nenhum argumento de tipo, o que cria um tipo bruto para a classe, compatível com códigos legados. 3. Em Java, não é possível criar classes de exceção genéricas. Uma classe genérica, portanto, não pode estender Throwable.
Assinale a alternativa que indica todas as afirmativas corretas.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: D - São corretas apenas as afirmativas 2 e 3.
A questão aborda o tema de classes genéricas em Java, focando em três aspectos: a possibilidade de construtores genéricos, o uso de classes genéricas sem argumentos de tipo e a capacidade de criar classes de exceção genéricas. Para resolver essa questão, é necessário compreender o conceito de genéricos em Java, como eles são aplicados a classes e métodos, e as restrições existentes no mecanismo de genéricos da linguagem.
A afirmativa 1 afirma que um construtor só pode ser genérico se a classe também for. Isso é incorreto, pois construtores em Java não podem ser genéricos. O papel dos genéricos é definir tipos em nível de classe ou método, não em construtores. Portanto, a afirmativa 1 é falsa.
A afirmativa 2 está correta. Java permite que classes genéricas sejam usadas sem especificar argumentos de tipo. Quando isso ocorre, a classe genérica é tratada como um tipo bruto (raw type), o que é uma concessão feita pela linguagem para manter compatibilidade com versões anteriores de Java, que não suportavam genéricos. Usar tipos brutos é desaconselhado, pois elimina os benefícios de segurança de tipo que os genéricos fornecem, mas é possível.
A afirmativa 3 também está correta. Em Java, as classes genéricas não podem estender diretamente ou indiretamente a classe Throwable
. Isso significa que você não pode criar uma exceção genérica, porque exceções devem ser subclasses de Throwable
, e esta é uma restrição intencional da linguagem para garantir que o sistema de tipos possa capturar e manipular exceções de forma coerente.
Concluindo, a compreensão correta das restrições e possibilidades do uso de genéricos em Java é essencial para responder a questão adequadamente, e a alternativa correta é a que reconhece que as afirmativas 2 e 3 são as verdadeiras dentro do contexto de genéricos em Java.
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
wt-f
criar "classes de exceção genéricas" é a coisa mais comum do mundo
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo