我正在使用以下代码,并在以下几行中输入了类型安全警告,

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);

最佳答案

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

您可能改为使用Class<?>,以防止类型推断。

09-19 15:45