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.