Problema generics
Bom dia pessoal, estou tentando fazer uma classe generica porem está dando uma exception, e não uque está errado.
Abaixo segue o codigo;
CLASSE QUE PARA TESTE QUE CHAMA A CLASSE GENERICA E TIPA ELA.
package br.com.dukatitec.a_teste;
import br.com.dukatitec.entidades.post.Post;
import br.com.dukatitec.util.daogenerico.definicoes.OrderByChavePrimaria;
import br.com.dukatitec.util.daogenerico.implementacoes.DaoGenerico;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Teste {
public static void main(String[] args) {
try {
DaoGenerico<Post> daoPost = new DaoGenerico<Post>();
List<Post> posts = daoPost.selectAll(OrderByChavePrimaria.DEFAULT);
System.out.println(posts.get(0).getId());
} catch (Exception ex) {
ex.printStackTrace();
Logger.getLogger(Teste.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
package br.com.dukatitec.util.daogenerico.implementacoes;
import br.com.dukatitec.util.daogenerico.definicoes.ObjOrderAndColumn;
import br.com.dukatitec.util.daogenerico.definicoes.Order;
import br.com.dukatitec.util.daogenerico.definicoes.OrderBy;
import br.com.dukatitec.util.daogenerico.definicoes.OrderByChavePrimaria;
import br.com.dukatitec.util.daogenerico.definicoes.TipoBusca;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.util.Date;
import java.util.List;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class DaoGenerico<T> implements BaseGenericDao<T>{
private Class<T> classEntity = null;
protected static final EntityManagerFactory factory = Persistence.createEntityManagerFactory("entity_and_dao_genericPU");
public DaoGenerico() {
}
private static EntityManagerFactory getFactory() {
return factory;
}
private Class<T> getClassEntity() {
if (this.classEntity == null) {
ParameterizedType parameterizedType = (ParameterizedType) getClass().getGenericSuperclass(); // EXCEPTION ACONTECE NESTA LINHA...
this.classEntity = (Class<T>) parameterizedType.getActualTypeArguments()[0];
}
return this.classEntity;
}
@Override
public List<T> selectAll(OrderByChavePrimaria orderByChavePrimaria) throws Exception {
return (List<T>) ImplementsGenericSelectAll.selectAll(getFactory(), (Class<Object>) getClassEntity(), orderByChavePrimaria);
}
//CONTINUA A CLASSE....
A exception que lança =
java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
at br.com.dukatitec.util.daogenerico.implementacoes.DaoGenerico.getClassEntity(DaoGenerico.java:30)
at br.com.dukatitec.util.daogenerico.implementacoes.DaoGenerico.selectAll(DaoGenerico.java:53)
at br.com.dukatitec.a_teste.Teste.main(Teste.java:16)

