2013-06-03 41 views
0

我用下面的代码,我有以下行式安全预警,类型安全警告如何避免仿制任务

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

通常有。首先要做的是:发布'createQuery()' - 方法的定义。 – Axel

回答

1

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

您可能需要使用Class<?>来防止类型推断。