Durante o desenvolvimento de um framework surgiu a necessida...

Próximas questões
Com base no mesmo assunto
Q4071636 Programação
Durante o desenvolvimento de um framework surgiu a necessidade de invocar dinamicamente um método a partir de uma string que contém o nome e a classe do método. Um dos programadores com mais experiência sugeriu o uso do conceito de reflexão computacional. O framework em questão foi desenvolvido na linguagem Java, versão 25.

Assinale a alternativa CORRETA.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: C

Fundamento decisivo: O enunciado exige invocação dinâmica de um método a partir de nomes em string; a decisão depende de saber que Java possui reflection nativa e que esse recurso resolve esse tipo de acesso em tempo de execução.

Tema central: Reflexão em Java
Análise das alternativas
A
Errada
Está errada porque afirma que Java não implementa reflexão nativamente, mas a plataforma possui API oficial de reflection. Também desloca a solução para manipulação direta de bytecode e para biblioteca externa, o que não é necessário para o caso apresentado.
B
Errada
Está errada porque reconhece a existência da reflexão em Java, mas nega exatamente uma de suas aplicações típicas: obter um Method e invocá-lo dinamicamente. Isso contraria o critério decisivo da questão.
C
Certa
A alternativa C está certa porque aponta a API oficial de reflexão da plataforma Java, centrada no pacote java.lang.reflect e no uso de Class, que permite acesso programático aos métodos de classes carregadas. Esse é justamente o mecanismo adequado para localizar um método a partir de identificadores e realizar sua invocação dinâmica em tempo de execução.
D
Errada
Está errada porque nega a própria possibilidade de reflexão em Java, embora a plataforma possua reflection nativa que permite localizar e invocar métodos dinamicamente.
Pegadinha da questão
A confusão explorada foi tratar invocação dinâmica por nome como algo que exigiria bytecode ou seria impossível em Java, quando isso é precisamente um uso clássico da reflection nativa.
Dica para questões semelhantes
  • Se o problema envolve descobrir classe, método ou membro em tempo de execução por identificadores como nome, verifique primeiro a API de reflection da linguagem.
  • Em Java, confirme a existência da solução nativa pela combinação de Class com java.lang.reflect antes de aceitar necessidade de bytecode ou biblioteca externa.
  • Quando uma alternativa negar uso de reflection para invocação dinâmica de método, confronte com o critério técnico: obtenção de Method por nome e invocação dinâmica.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo