ENUM ou String, qual usar?

5 respostas
M

O que seria melhor? Usar um enum, que acho que vai aumentar a performance de comparação. Ou usar String, pois preciso deixar outras pessoas definirem o que quiserem em tempo de execução.

5 Respostas

ViniGodoy

Depende… pra que?

M

É para definir papeis para usuários e papeis que o método permite.

Só que eu quero poder definir em tempo de execução. E criá-los em tempo de execução, por isso estou usando String.

Não consegui achar “Como criar enums” em tempo de execução.

ViniGodoy

Não dá para criar enums em tempo de execução. Se vc precisa cadastrar itens novos, não é o caso de usar enums.

Além disso, melhor que String é criar uma classe para o Papel. Nem que inicialmente tenha só uma String com o nome dele dentro (talvez um campo para o id também seja útil).

M

Eu estou recebendo as Strings em uma anotação

@AllowAccessOnlytTo("NotAuthenticatedUser")
public void login() {/**/}

Só que depois eu vou dar a opção de para o metodo(), adicionar novas Strings(Roles).

Por exemplo:

Map<Method, List<String>> methodRolesMap = new HashMap<Method, List<String>>();
methodRolesMap.put(Classe.class.getMethod("metodo"), new ArrayList<String);
methodRolesMap.get(Classe.class.getMethod("metodo")).add("Role1");
M

Eu tô usando String só para ficar mais fácil de usar. Sem precisar ficar criando classes, essas coisas.

Criado 8 de abril de 2012
Ultima resposta 8 de abr. de 2012
Respostas 5
Participantes 2