类型安全警告如何避免通用分配

时间:2013-06-03 12:21:16

标签: java casting type-safety

我正在使用以下代码,我对以下行有类型安全警告

Type safety: Unchecked cast from Root<capture#5-of ?> to Root<T>
Type safety: Unchecked cast from CriteriaQuery<capture#4-of ?> to CriteriaQuery<T>

有一种方法可以避免它而不添加抑制吗?

CriteriaQuery<T> criteriaQuery = (CriteriaQuery<T>) criteriaBuilder.createQuery(classReferance);

 Root<T> rootObj = (Root<T>) criteriaQuery.from(classReferance);

1 个答案:

答案 0 :(得分:1)

您正在将classReference传递给createQueryclassReference的类型必须为Class<T>,以便编译器确认您对传入的类和T criteriaQuery使用相同的CriteriaQuery<T>

您可能会使用Class<?>,这会阻止类型推断。