Enum

Como faço para acessar um enum estando em uma classe diferente?
Obrigado.

Simplesmente importa o enum como se fosse uma classe.

O enum:

package outro.pacote;

public enum MeuEnum {
    MEU_VALOR
}

Outra classe:

package meu.pacote;

import outro.pacote.MeuEnum; // importando o ENUM nessa classe

class Teste {
    void usandoEnum() {
        MeuEnum meuEnum = MeuEnum.MEU_VALOR;
    }
}
2 curtidas
public class Roupa {
	private String cor;
	private String material;
	public enum Tamanho{P,M,G}
	public enum Estado{LIMPA,SUJA}
	
	public String getCor() {
		return cor;
	}
	
	public void setCor(String cor) {
		this.cor = cor;
	}
	
	public String getMaterial() {
		return material;
	}
	
	public void setMaterial(String material) {
		this.material = material;
	}
}

Outra classe:

import Roupa.Estado; //Diz que não tá sendo instanciada

public class MaquinaDeLavar {
	
	Estado estado = Estado.LIMPA; // está dando errado;

Por que isso acontece?

Em qual pacote está essa sua classe Roupa e em qual pacote está essa sua outra classe MaquinaDeLavar? Se estiverem no mesmo pacote, não precisa de nenhum import. Se você não definiu nenhum pacote pra classe Roupa (se ela está no pacote default), então não dá pra importar e você tem que inserir ela num pacote.

No exemplo que eu dei você pode ver que o enum está no pacote “outro.pacote”:

package outro.pacote;

public enum MeuEnum {
    MEU_VALOR
}

Então, qualquer classe que vai usar ela precisa usar “import outro.pacote.MeuEnum” para usar esse enum.

1 curtida

Muito obrigado cara, me ajudou demais.:smiley:

Seu enum Estado foi declarado dentro da classe Roupa, como ele não é estático, você precisa ter um objeto da classe Roupa para poder “enxergá-lo”.
Declara ele como static que vai resolver.

1 curtida