Problema com enum

13 respostas
thiago.limma

GALERA ESTOU COM UM PROBLEMINHA AQUI

if(StatusSolicitacao.PENDENTESUPERIOR.equals(status)){  
            return getResourceString(ConstantesFerias.MSGSTATUSPENDENTESUPERIOR, null);  
        }

Onde StatusSolicitacao é um Enum.

o meu status está vindo de acordo… “PENDENTESUPERIOR”. Alguém poderia me explicar pq ele nunca entra nesse if???

13 Respostas

davidtiagoconceicao

Tente:

if(status == StatusSolicitacao.PENDENTESUPERIOR){    
    return getResourceString(ConstantesFerias.MSGSTATUSPENDENTESUPERIOR, null);    
}
ignacio83

Essa sua varíavel status é um Enum também?

Caso seja string não vai funcionar mesmo. Tente fazer:

StatusSolicitacao.PENDENTESUPERIOR.name
thiago.limma

davidtiagoconceicao:
Tente:

if(status == StatusSolicitacao.PENDENTESUPERIOR){ return getResourceString(ConstantesFerias.MSGSTATUSPENDENTESUPERIOR, null); }

Nao… status é uma string.

public static String formataStatus(String status) {
		if(StatusSolicitacao.PENDENTESUPERIOR.equals(status)){
			return getResourceString(ConstantesFerias.MSGSTATUSPENDENTESUPERIOR, null);
		}
		else if(StatusSolicitacao.REPROVADOSUPERIOR.equals(status)){
			return getResourceString(ConstantesFerias.MSGSTATUSREPROVADOSUPERIOR, null);
		}
		else if(StatusSolicitacao.PENDENTERH.equals(status)){
			return getResourceString(ConstantesFerias.MSGSTATUSPENDENTERH, null);
		}
		else if(StatusSolicitacao.REPROVADORH.equals(status)){
			return getResourceString(ConstantesFerias.MSGSTATUSREPROVADORH, null);
		}
		else if(StatusSolicitacao.APROVADO.equals(status)){
			return getResourceString(ConstantesFerias.MSGSTATUSAPROVADO, null);
		}
		else if(StatusSolicitacao.CANCELADA.equals(status) ){
			return getResourceString(ConstantesFerias.MSGSTATUSCANCELADO, null);
		}
		else{
			return "";
		}
	}

Veja meu método todo… StatusSolicitacao é um enum

thiago.limma

ignacio83:
Essa sua varíavel status é um Enum também?

Caso seja string não vai funcionar mesmo. Tente fazer:

StatusSolicitacao.PENDENTESUPERIOR.name

Mas eu tenho que receber uma string como parametro e comparar com o Enum… nao tem jeito??

thiago.limma

ignacio83:
Essa sua varíavel status é um Enum também?

Caso seja string não vai funcionar mesmo. Tente fazer:

StatusSolicitacao.PENDENTESUPERIOR.name

Valeu cara! É isso mesmo!

ignacio83

Tem outras maneiras mais malucas…

Dá pra declarar um atributo no Enum que represente esse seu String e dps declarar um Construtor do Enum:

Algo parecido com isso:
http://www.java2s.com/Code/Java/Language-Basics/Useanenumconstructorinstancevariableandmethod.htm

thiago.limma

ignacio83:
Tem outras maneiras mais malucas…

Dá pra declarar um atributo no Enum que represente esse seu String e dps declarar um Construtor do Enum:

Algo parecido com isso:
http://www.java2s.com/Code/Java/Language-Basics/Useanenumconstructorinstancevariableandmethod.htm

Agora eu to com outro problema aqui…

solicitacaoFeriasAux.setStatus(SisrhBeanUtils.formataStatus(solicitacao.getStatus().toString()));

setStatus (StatusSolicitacao){}…

esse método formataStatus retorna uma string… ai eu dei um toString mas ai ele converte tudo para string e da pala no set.

A questao é a seguinte… eu tenho q converter o status para string somente no método e depois converter p/ StatusSolicitacao.

Puts… q confusao…

espero q vc tenha me entendido rsrs

ignacio83

Pois é eu acho q entendi mais ou menos…

Me explica porque vc precisa fazer tudo isso… Quem sabe eu ou alguem tenha alguma idéia melhor…

thiago.limma

ignacio83:
Pois é eu acho q entendi mais ou menos…

Me explica porque vc precisa fazer tudo isso… Quem sabe eu ou alguem tenha alguma idéia melhor…

Tem como eu converter um Set em um List?

thiago.limma

ignacio83:
Pois é eu acho q entendi mais ou menos…

Me explica porque vc precisa fazer tudo isso… Quem sabe eu ou alguem tenha alguma idéia melhor…

Pensei no seguinte método

public List converteListaSolicitacaoFerias(SetsetSolicitacao){

Como eu faço para fazer isso?

Tem jeito?

Fabio_Kym_Nascimento

É só percorrer esse Set, montar um List a partir dele e retornar esse novo List. Como o List é menos restritivo que Set não precisa nem se preocupar com a integridade. Se fosse pra transformar um List em um Set por exemplo você teria que tomar cuidado com elementos repetidos, já que List aceita e Set não.

ignacio83

dá pra fazer assim tb:

List x = new ArrayList(setSolicitacao);
Fabio_Kym_Nascimento

ignacio83:
dá pra fazer assim tb:

List x = new ArrayList(setSolicitacao);

Boa! Nada como conhecer a API :!:

ArrayList(Collection<? extends E> c)
Constructs a list containing the elements of the specified collection, in the order they are returned by the collection’s iterator.

Criado 2 de dezembro de 2008
Ultima resposta 3 de dez. de 2008
Respostas 13
Participantes 4