Sử dụng @SuppressWarnings
ở mọi nơi, như đã đề xuất, là một cách tốt để làm điều đó, mặc dù nó liên quan đến một chút gõ ngón tay mỗi khi bạn gọi q.list()
.
Có hai kỹ thuật khác mà tôi muốn đề xuất:
Viết trình trợ giúp diễn viên
Đơn giản chỉ cần cấu trúc lại tất cả của bạn @SuppressWarnings
vào một nơi:
List<Cat> cats = MyHibernateUtils.listAndCast(q);
...
public static <T> List<T> listAndCast(Query q) {
@SuppressWarnings("unchecked")
List list = q.list();
return list;
}
Ngăn Eclipse tạo cảnh báo cho các sự cố không thể tránh khỏi
Trong Eclipse, đi tới Window> Preferences> Java> Compiler> Errors / Warnings và bên dưới Generic type, chọn hộp kiểm
Ignore unavoidable generic type problems due to raw APIs
Thao tác này sẽ tắt các cảnh báo không cần thiết đối với các sự cố tương tự như sự cố được mô tả ở trên mà không thể tránh khỏi.
Một vài bình luận:
- Tôi đã chọn để vượt qua
Query
thay vì kết quả q.list()
bởi vì theo cách đó, phương pháp "gian lận" này chỉ có thể được sử dụng để gian lận với Hibernate, và không gian lận bất kỳ List
nói chung.
- Bạn có thể thêm các phương pháp tương tự cho
.iterate()
v.v.