Sobre Java, considere as seguintes afirmativas. 1. Um const...

Próximas questões
Com base no mesmo assunto
Ano: 2018 Banca: FEPESE Órgão: CELESC Prova: FEPESE - 2018 - CELESC - Analista de Sistemas |
Q1248111 Programação
Sobre Java, considere as seguintes afirmativas.
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.
Alternativas

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