Tou tentando retornar o tipo generics passado para a classe… segue o exemplo abaixo…
Uma entidade
public class Entity implements Serializable {
private static final long serialVersionUID = -115830062740022515L;
public long id;
public boolean valido = true;
interface do dao
public interface Dao<T extends Entity> {
}
implementação do dao
public class DaoImpl<T extends Entity> implements Dao<T> {
private Class<T> reflectionObject;
private Session session;
@SuppressWarnings("unchecked")
public DaoImpl() {
this.reflectionObject = (Class<T>) ((ParameterizedType) getClass()
.getGenericSuperclass()).getActualTypeArguments()[0];
System.out.println("..");
}
}
e essa parte do código sempre retorna um java.lang.Object, ou seja quando tento fazer cast para ParameterizedType ocorre uma exceção.
getClass().getGenericSuperclass()