Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Método estático interage com atributo de enum

É dito no texto o seguinte: "Se você precisar de um método que não precisa interagir com os atributos ou outros métodos de um objeto, criar um método estático pode ser uma solução elegante e eficiente.", o que me deixou confuso, porque o método estático usado no video anterior interage com o atributo "categoriaOmdb" do enum Categoria. Por que nesse caso é possível?

2 respostas
solução!

Ei Gabriel!

Na frase "Se você precisar de um método que não precisa interagir com os atributos ou outros métodos de um objeto, criar um método estático pode ser uma solução elegante e eficiente.", quando falamos sobre interagir com atributos, estamos falando sobre modificar os valores dos atributos. Nesse sentido, quando trabalhamos com métodos estáticos, o único jeito de modificar um atributo de uma classe é se esse atributo também for estático. Isso porque, se mudamos o valor do atributo para uma instância, ele mudará para todas as outras daquela mesma classe.

No nosso método, estamos apenas pegando o valor de categoriaOmdb, não estamos fazendo nenhuma modificação nele. Por isso, é possível usar o método estático.

Agora, falando do método em si: começamos percorrendo os valores possíveis de Categoria, usando Categoria.values(). Isso é possível por que no enum temos um valor fixo de instâncias da classe. Caso tenha dúvida sobre isso, peço que você dê uma olhada na resposta que dei para o seu outro tópico.

Para cada uma das instâncias possíveis, verificamos se o texto recebido é igual ao atributo categoriaOmdb, que é semelhante ao atributo de uma classe, como comentei no outro tópico. Se for igual, retornamos a instância da categoria associada ao atributo categoriaOmdb. Caso constrário, é lançada uma exceção.

Se ainda tiver alguma questão, fique à vontade para enviar!

Espero ter ajudado e bons estudos!

Entendi, muito obrigado.