我正在使用openJPA(有点旧版本1.2),我每次投出query.getResultList()
都会收到警告。我用@SuppressWarnings("unchecked")
中前行,所以我可以摆脱那个特定的警告,但是,当我需要在下面的示例返回喜欢清单,我不能这样做:类型不安全:未选中从Foo投射到酒吧。 JPA的东西
// @SuppressWarnings("unchecked") I DON'T WANT TO DO THIS HERE
public <T> List<T> findByQuery(String queryString) {
myEntityManager.createQuery(queryString);
@SuppressWarnings("unchecked") // I WANT TO DO IT HERE
return (List<T>)query.getResultList();
}
在这里,我可以这样做:
...
@SuppressWarnings("unchecked")
List<T> result = query.getResultList();
return result;
}
但是然后sonar抱怨我不应该将列表存储在变量中,而是立即返回。这里我最好的选择是什么?
由于您从方法中返回值而未将其分配给第一个代码段,因此您必须将@SuppressWarnings添加到方法本身。你必须住在声纳违规或第一个代码片段中,“我不想这样做” –
只是为了在声纳周围愚弄也有一个肮脏的解决方案(虽然我不建议这样做)。添加“result.size();”在返回结果以摆脱声纳违规之前。我建议坚持在方法级别注释的第一个片段。 –
不声纳使用Checkstyle吗?您可以禁用checkstyle错误。 –