Usar en @SuppressWarnings
todas partes, como se sugiere, es una buena manera de hacerlo, aunque implica escribir un poco con el dedo cada vez que llama q.list()
.
Hay otras dos técnicas que sugeriría:
Escribe un ayudante de reparto
Simplemente refactorice todo @SuppressWarnings
en un solo lugar:
List<Cat> cats = MyHibernateUtils.listAndCast(q);
...
public static <T> List<T> listAndCast(Query q) {
@SuppressWarnings("unchecked")
List list = q.list();
return list;
}
Evite que Eclipse genere advertencias por problemas inevitables
En Eclipse, vaya a Ventana> Preferencias> Java> Compilador> Errores / Advertencias y en Tipo genérico, seleccione la casilla de verificación
Ignore unavoidable generic type problems due to raw APIs
Esto desactivará las advertencias innecesarias para problemas similares como el descrito anteriormente que son inevitables.
Algunos comentarios:
- Elegí pasar el en
Query
lugar del resultado de q.list()
porque de esa manera este método de "trampa" solo se puede usar para hacer trampa con Hibernate, y no para engañar a nadie List
en general.
- Puede agregar métodos similares para
.iterate()
etc.