我正在使用以下代码,并在以下几行中输入了类型安全警告,
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
传递给createQuery
。 classReference
的类型必须为Class<T>
,编译器才能确认传入的类和T
criteriaQuery使用相同的CriteriaQuery<T>
。
您可能改为使用Class<?>
,以防止类型推断。