Problema com enum

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???

Tente:

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

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

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

StatusSolicitacao.PENDENTESUPERIOR.name

[quote=davidtiagoconceicao]Tente:

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

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

[quote=ignacio83]Essa sua varíavel status é um Enum também?

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

StatusSolicitacao.PENDENTESUPERIOR.name [/quote]

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

[quote=ignacio83]Essa sua varíavel status é um Enum também?

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

StatusSolicitacao.PENDENTESUPERIOR.name [/quote]

Valeu cara! É isso mesmo!

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

[quote=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

[/quote]

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

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…

[quote=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…[/quote]

Tem como eu converter um Set em um List?

[quote=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…[/quote]

Pensei no seguinte método

public List converteListaSolicitacaoFerias(SetsetSolicitacao){

Como eu faço para fazer isso?

Tem jeito?

É 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.

dá pra fazer assim tb:

List x = new ArrayList(setSolicitacao);

[quote=ignacio83]dá pra fazer assim tb:

List x = new ArrayList(setSolicitacao); [/quote]

Boa! Nada como conhecer a API :!:

[quote]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.[/quote]