O desenvolvedor Rafael está construindo um microsserviço de ...

Próximas questões
Com base no mesmo assunto
Q3874359 Programação
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×203)
Considere que todos os imports necessários foram feitos corretamente. Com base no trecho de código apresentado, a requisição GET /inventario/produto3 retornará:
Alternativas

Comentários

Veja os comentários dos nossos alunos

A alternativa correta é a A - 0;

A análise do código revela o seguinte funcionamento lógico:

  1. Estado Inicial do Mapa: No construtor da classe , o mapa é populado com duas chaves:
  • com o valor
  • com o valor
  1. Lógica do Método: O método utiliza a função da interface .
  • Essa função tenta buscar o valor associado à chave fornecida ().
  • Se a chave não existir no mapa, ela retorna o valor padrão especificado no segundo argumento (neste caso, ).
  1. A Requisição: A pergunta pede o resultado para a requisição .
  • O recebido será .
  • Como não foi adicionado ao mapa no construtor, o método não o encontrará e retornará o valor 0.
  • B e C: São os valores de produtos que realmente existem no mapa ( e ), portanto não correspondem ao .
  • D (404): O Spring Boot retornaria 404 se o endpoint (o caminho ) não existisse. Como o caminho existe e o código trata a ausência da chave retornando um valor (0), a resposta HTTP será 200 OK com o corpo contendo o número .
  • E (500): Um erro 500 ocorreria se houvesse uma exceção não tratada (como um ). O uso de previne justamente que o código quebre ao buscar chaves inexistentes.

A resposta correta é: **A) 0**

Explicando de forma direta:

* O `Map` chamado `inventario` possui apenas:

 * `"produto1" → 10`

 * `"produto2" → 5`

* A requisição `GET /inventario/produto3` busca uma chave que **não existe** no mapa.

* O método usado é:

 ```java

 inventario.getOrDefault(produtoId, 0);

 ```

* O método `getOrDefault` retorna:

 * o valor associado à chave, se existir;

 * **o valor padrão (0)**, se não existir.

Portanto, como `"produto3"` não está no mapa, o retorno será **0**.

✔️ Não é 404 porque o endpoint existe

✔️ Não é 500 porque não há exceção

✔️ Não é 5 ou 10 porque essas são de outras chaves

**Resposta final: A) 0**

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo