O desenvolvedor Rafael está construindo um microsserviço de ...
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á:
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:
- Estado Inicial do Mapa: No construtor da classe , o mapa é populado com duas chaves:
- com o valor
- com o valor
- 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, ).
- 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