Classe Enum - Dúvidas

5 respostas
SirDominque
package Lists;

/**
 *
 * @author André Lopes
 */
public enum UserPowerLevel 
{
   //0 = publico//1 = Moderador//2 = Administrador
   powerLevel,publico,moderador,administrador;  
}

Eu queria fazer
int i = UserPowerLevel.publico;

--

O que esta faltando? Nao seria só colocar os atributos que ele ja gerava os valores automaticamente?

5 Respostas

SirDominque

Alguem pode ajudar?
http://serjaum.wordpress.com/2009/07/21/enumeration-em-java/

Eu tentei esses dois jeitos e nao consegui, ele da erro ao compilar.

Eu fiz PUBLICO(0),Moderador(1);

J

Boa tarde.
Segue exemplo:
public enum IndicadorEstrangeiro {

S("Sim", "S"),
N("Nao", "N");
private String label;
private String valor;

private IndicadorEstrangeiro(final String label, final String valor) {
	this.label = label;
	this.valor = valor;
}
public String getLabel() {
	return label;
}

public String getValor() {
	return valor;
}

}

SirDominque
jeansilva:
Boa tarde. Segue exemplo: public enum IndicadorEstrangeiro {

S("Sim", "S"),
N("Nao", "N");
private String label;
private String valor;

private IndicadorEstrangeiro(final String label, final String valor) {
this.label = label;
this.valor = valor;
}
public String getLabel() {
return label;
}

public String getValor() {
return valor;
}
}

Porque que tem isso aqui ?

private String label; 
private String valor; 

private IndicadorEstrangeiro(final String label, final String valor) { 
this.label = label; 
this.valor = valor; 
} 
public String getLabel() { 
return label; 
} 

public String getValor() { 
return valor; 
} 
}
pmlm

Isso é algo como o que tu precisas no teu enum. Se queres ter um código inteiro, tens de o declarar e ter um construtor que o receba.

public enum UserPowerLevel   
{  
    PUBLICO (0), 
    MODERADOR (1), 
    ADMINISTRADOR(2);

    private int codigo;  // o código que queres guardar

    UserPowerLevel (int codigo){  // o construtor que recebe um int e que é utilizado acima
        this.codigo = codigo;
    }

    public int getCodigo(){  // o método publico para obter o codigo de um nível
        return this.codigo;
    }
}

Depois o que tu queres fazer é:

int i = UserPowerLevel.PUBLICO.getCodigo();
SirDominque
pmlm:
Isso é algo como o que tu precisas no teu enum. Se queres ter um código inteiro, tens de o declarar e ter um construtor que o receba.
public enum UserPowerLevel   
{  
    PUBLICO (0), 
    MODERADOR (1), 
    ADMINISTRADOR(2);

    private int codigo;  // o código que queres guardar

    UserPowerLevel (int codigo){  // o construtor que recebe um int e que é utilizado acima
        this.codigo = codigo;
    }

    public int getCodigo(){  // o método publico para obter o codigo de um nível
        return this.codigo;
    }
}
Depois o que tu queres fazer é:
int i = UserPowerLevel.PUBLICO.getCodigo();

OBRIGADO!

mas se eu quiser a classe apenas para fazer get, eu preciso disso :

private int codigo;  // o código que queres guardar  
  
    UserPowerLevel (int codigo){  // o construtor que recebe um int e que é utilizado acima  
        this.codigo = codigo;  
    }
Criado 18 de abril de 2013
Ultima resposta 18 de abr. de 2013
Respostas 5
Participantes 3