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

1 回答 1

1

你正在传递一个classReferenceto createQuery。的类型classReference必须Class<T>让编译器确认您T对传入的类和CriteriaQuery<T>criteriaQuery 都使用相同的类型。

您可能有一个Class<?>代替,它可以防止类型推断。

于 2013-06-03T12:29:14.267 回答