galera, existe uma maneira do meu enum chamar um método da classe em que ele está?
aí está o código:
public class Lista {
public enum TpQuebra {
NENHUMA_QUEBRA("Nenhuma quebra específica"),
CID_CLASS_OPCAO_CARGO("Cidade de Classificação/Opção de Cargo"),
OPCAO_CARGO("Opção de Cargo"),
OPCAO_CARGO_CID_CLASS("Opção de Cargo/Cidade de Classificação"),
OUTRO("");
private String descricao;
TpQuebra(String descricao) {
this.descricao = descricao;
}
public String getDescricao() {
return descricao;
}
};
private TpQuebra tpQuebra;
private int vias;
public void setVias(int vias) {
this.vias = vias;
}
}
O que eu quero é: dentro do método getDescricao(), eu quero chamar o método setVias()
Existe como fazer isso?
Você não deveria criar esta dependência dentro do Enum. Ele é basicamente uma estrutura de dados para criar tipos enumerados. Eu não vejo como adequado colocar lógica ali dentro.
Mas, se mesmo assim quiser:
[code]public enum A {
X(“x”),
Y(“y”);
private String a;
private B b;
A(String a) {
this.a = a;
}
public String getA() {
if( b != null ) this.b.bbb();
return this.a;
}
public B getB() {
return this.b;
}
public void setB(B b) {
this.b = b;
}
}[/code]
public class B {
public void bbb() { /* ..... */ }
}
A a = A.X;
a.setB(new B());
String w = a.getA();
Mas, CUIDADO! Enum só tem um instância por tipo criado, ou seja, não é thread safe.