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

Duvida

Boa noite galera, gostaria de exemplos de enum, pra que especificamente é ultilizada? poderia me dar exemplo?

2 respostas
solução!

Oi Alisson, as Enums são bem úteis quando você tem aquele conjunto pré-definido de informações possíveis dentro de um campo. Um caso simples seria se você tivesse um formulário e ele tivesse que informar um documento, que poderia ser um RG, um CPF, um Passaporte OU um número do PIS.

Você poderia ter dentro da classe Usuario (ou algo equivalente) alguma coisa do tipo:

class Usuario {
   // outros campos
   private TipoDocumento tipoDocumento;
   private String numeroDocumento;
}

Já a Enum TipoDocumento seria algo como:

enum TipoDocumento {
   RG, CPF, PASSAPORTE, PIS;
}

Com isso, na hora dele definir o documento, seria algo como:

usuario.setTipoDocumento(TipoDocumento.CPF);
usuario.setNumeroDocumento("123456789");

Aí agora você deve estar se perguntando: "Mas qual é a vantagem disso?" :)

Se você não usasse a Enum, qual seria a possibilidade para indicar os 4 tipos de documentos possíveis?

Possibilidade a) Uma String:

usuario.setTipoDocumento("CPF");
usuario.setNumeroDocumento("123456789");

Mas aí, o que aconteceria se o valor informado no tipoDocumento fosse algo errado ou inválido, como:

usuario.setTipoDocumento("CêPêÉfe");
usuario.setNumeroDocumento("123456789");

Claro, foi um exemplo esdrúxulo, mas poderia ser só um errinho de digitação. O problema é que você passaria a ter possibilidades inconsistentes e para pegar esse problema teria que ficar fazendo validações com IF em todo canto.

Com a Enum, você não precisa, já que se um valor errado for passado, o próprio compilador vai reclamar para você. Seu código nem compilará.

Possibilidade b) Um int:

usuario.setTipoDocumento(1);
usuario.setNumeroDocumento("123456789");

O que significa tipoDocumento 1? Que número mágico é esse? Repara que fica pior ainda. Ilegível e mesmo se você extraísse isso para uma constante int, nada obrigaria alguém a usar a constante. Então alguém poderia continuar indo lá e informando o 1 direto.

Essas são as motivações e vantagens de usar as Enums. Veja se ficou claro :) e qualquer coisa, avise.

Adriano otíma explicação