Usar em @SuppressWarnings
qualquer lugar, conforme sugerido, é uma boa maneira de fazer isso, embora envolva digitar um pouco o dedo cada vez que você ligar q.list()
.
Existem duas outras técnicas que eu sugiro:
Escreva um elenco auxiliar
Simplesmente refatore tudo @SuppressWarnings
em um só lugar:
List<Cat> cats = MyHibernateUtils.listAndCast(q);
...
public static <T> List<T> listAndCast(Query q) {
@SuppressWarnings("unchecked")
List list = q.list();
return list;
}
Impedir que o Eclipse gere avisos para problemas inevitáveis
No Eclipse, vá para Janela> Preferências> Java> Compilador> Erros / Avisos e em Tipo genérico, selecione a caixa de seleção
Ignore unavoidable generic type problems due to raw APIs
Isso desativará avisos desnecessários para problemas semelhantes, como o descrito acima, que são inevitáveis.
Alguns comentários:
- Eu escolhi passar no em
Query
vez do resultado de q.list()
porque dessa forma este método de "trapaça" só pode ser usado para trapacear com o Hibernate, e não para trapacear List
em geral.
- Você pode adicionar métodos semelhantes para
.iterate()
etc.