Pular para o conteúdo principal

Questão de Programação — Frameworks Java — FGV 2026

ProgramaçãoFrameworks Java
Código
fg133907
Banca
FGV
Órgão
TJ-RJ
Ano
2026
Nível
Superior
Cargo
Analista Judiciário - Tecnologia da Informação - Analista de Sistemas
O desenvolvedor Rafael está construindo um microsserviço de gerência de inventário com Java e Spring Boot. Analise o seguinte trecho do código do microsserviço:55.jpg 326×203Considere que todos os imports necessários foram feitos corretamente. Com base no trecho de código apresentado, a requisição GET /inventario/produto3 retornará:
  1. A0;
  2. B5;
  3. C10;
  4. D404;
  5. E500.
Revelar gabarito e comentário

GabaritoA — 0;

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Spring Boot: mapeamento de rotas e parâmetros de caminho

Gabarito: letra A. A requisição GET /inventario/produto3 retornará 0, pois o código mapeia o caminho /inventario/{id} e o método buscarProduto retorna o valor do produto com o ID fornecido, que não existe no mapa, resultando no valor padrão 0 (Spring MVC, anotação @GetMapping e @PathVariable).

O trecho de código apresentado define um controlador REST em Spring Boot. A anotação @GetMapping("/inventario/{id}") mapeia requisições HTTP GET para o caminho /inventario/{id}, onde {id} é um parâmetro de caminho (path variable). O método buscarProduto recebe esse parâmetro e o utiliza para buscar um produto em um mapa (provavelmente um Map<Integer, Integer> que simula um banco de dados em memória).

A lógica do método é: se o mapa contém o ID fornecido, retorna o valor associado; caso contrário, retorna um valor padrão, que no código é 0. Como a requisição é para /inventario/produto3, o parâmetro id recebe o valor 3. Se o mapa não contém a chave 3, o método retorna 0. O gabarito oficial é a letra A, indicando que o produto com ID 3 não está cadastrado no mapa, e o retorno é o valor padrão 0.

É importante entender a diferença entre parâmetros de caminho (@PathVariable) e parâmetros de consulta (@RequestParam). O primeiro extrai valores da própria URL, enquanto o segundo extrai valores após o ?. Nesta questão, a URL /inventario/produto3 indica que produto3 é o valor do parâmetro de caminho id, e não um parâmetro de consulta. A banca explora exatamente essa confusão: o candidato pode pensar que produto3 é um valor literal e não um parâmetro, ou que a requisição retornaria um erro 404 por não encontrar o recurso. No entanto, o código trata produto3 como o valor do ID e, como não há produto com esse ID, retorna o valor padrão 0.

  1. 1@GetMapping("/inventario/{id}")
  2. 2@PathVariable id = "produto3"
  3. 3Busca no mapa (chave 3)
  4. 4Não encontrado → retorna 0
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

A alternativa A está correta porque o código retorna o valor padrão 0 quando o ID não é encontrado no mapa. A requisição GET /inventario/produto3 faz com que o parâmetro id receba o valor 3. Como o mapa não contém a chave 3, o método retorna 0. Isso demonstra o comportamento padrão de um controlador Spring Boot que utiliza @GetMapping e @PathVariable para mapear rotas dinâmicas.

Alternativa B — ❌ Incorreta

A alternativa B sugere que o retorno seria 5. Isso ocorreria se o mapa contivesse a chave 3 associada ao valor 5. No entanto, o código não indica que o produto com ID 3 existe no mapa. O valor 5 poderia ser um distrator, representando um produto que não está cadastrado ou um valor de outro produto. A resposta correta é 0, pois o ID 3 não está presente no mapa.

Alternativa C — ❌ Incorreta

A alternativa C sugere que o retorno seria 10. Isso ocorreria se o mapa contivesse a chave 3 associada ao valor 10. No entanto, o código não indica que o produto com ID 3 existe no mapa. O valor 10 poderia ser um distrator, representando um produto que não está cadastrado ou um valor de outro produto. A resposta correta é 0, pois o ID 3 não está presente no mapa.

Alternativa D — ❌ Incorreta

A alternativa D sugere que o retorno seria 404. Isso ocorreria se o código lançasse uma exceção ou retornasse um status HTTP 404 quando o produto não fosse encontrado. No entanto, o código retorna o valor padrão 0, não um erro HTTP. O status 404 é comumente usado em APIs REST para indicar que o recurso não foi encontrado, mas neste caso o método não lança exceção nem retorna um ResponseEntity com status 404. A resposta correta é 0.

Alternativa E — ❌ Incorreta

A alternativa E sugere que o retorno seria 500. Isso ocorreria se o código lançasse uma exceção não tratada, resultando em um erro interno do servidor. No entanto, o código não lança exceção; ele simplesmente retorna o valor padrão 0 quando o ID não é encontrado. O status 500 é usado para erros internos do servidor, mas neste caso não há erro. A resposta correta é 0.

NÃO CAIA NESSA!

A banca tenta confundir o candidato ao usar produto3 na URL, fazendo parecer que é um recurso específico que deveria retornar um valor ou um erro 404. No entanto, o código trata produto3 como o valor do parâmetro de caminho id, e como não há produto com ID 3, retorna o valor padrão 0. O candidato deve prestar atenção à anotação @GetMapping("/inventario/{id}") e ao comportamento do método quando o ID não é encontrado.

PEGA ESSA DICA!

Para resolver questões de Spring Boot, identifique as anotações de mapeamento (@GetMapping, @PostMapping, etc.) e os parâmetros (@PathVariable, @RequestParam). Verifique o que o método retorna em cada caso, especialmente quando o recurso não é encontrado. Isso ajuda a evitar erros de interpretação.

Gabarito: letra A

Link permanente: /questoes/fg133907