我正在使用以下代码,我对以下行有类型安全警告
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);
答案 0 :(得分:1)
您正在将classReference
传递给createQuery
。 classReference
的类型必须为Class<T>
,以便编译器确认您对传入的类和T
criteriaQuery使用相同的CriteriaQuery<T>
。
您可能会使用Class<?>
,这会阻止类型推断。