Class<?> - Class<T>

Procurei por aqui e não achei nada que pudesse me esclarecer um pouco, só para confirmar.

Alguem sabe se é possível converter um Class<?> para Class

O Class.forName retorna um Class<?> e preciso pegar um valor de Enum usando o Enum.valueOf()

Exemplo

Enum.valueOf(Class.forName(campo.getFormato().getDesc()), atributo);

Com isso eu posso pegar o valor ordinal de qualquer enum passando o value dele.

Isso se deve a ter vários Enums em um projeto e cada um foi criado de um jeito, alguns utilizam o valor padrão e alguns utilizam um valor específico.

valeu galera!

Se você tem uma variável do tipo do seu enum, simplemente chame o método ordinal().

SeuEnum x = SeuEnum.QualquerValor; int ordinal = x.ordinal();

Para o caminho oposto, use o método estático valueOf:

SeuEnum x = SeuEnum.valueOf(2);

E você não pode converter um Class<?> para um Class<T>

Aí é que está o problema, eu não tenho uma variável do meu Enum e nem quero ter ela. Estou tentando fazer um método genérico funcionar para não ter que ficar instanciando todos os Enums existentes por aqui.

Na verdade eu tenho somente o nome do Enum e o Value dele.

O nome e o Value do Enum é uma String nativa e com eles estou tentando obter o valor do ordinal para todos e não somente um.

Bom cheguei a conclusão que não vou fazer isso mesmo.

Depois de muito procurar achei uma excelente explicação sobre o assunto.

http://blog.caelum.com.br/?s=instanciar

http://blog.caelum.com.br/2007/04/08/generics-inferencia-de-tipos-e-reificacao-no-java-7/

Acho que vou ter que esperar a Java 7 para fazer alguma coisa desse tipo! hhehehehehe

valeu ViniGodoy!

Dá para fazer através de conversões inseguras. Eu já fiz algo assim, mas o resultado não fica bom.