使用Hibernate条件查询避免类型安全警告

Nim*_*sky 5 java generics hibernate

final Criteria crit = session.createCriteria(MyClass.class);
final List<MyClass> myClassList = crit.list();
Run Code Online (Sandbox Code Playgroud)

结果如下: 类型安全:类型List的表达式需要未经检查的转换以符合List

他们是一个删除警告的方法,因为我使用这个得到一个错误:

final List<MyClass> myClassList = Collections.checkedList(MyClass.class, crit.list());
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 6

好吧,你可以使用:

@SuppressWarnings("unchecked")
Run Code Online (Sandbox Code Playgroud)

宣言之前......

请注意,这只会抑制警告 - 它不会做任何事情来使代码更安全.在这种情况下,我个人对此感到高兴; 我相信Hibernate会做正确的事情.

  • 如果您依赖于返回无类型集合的第三方API,那么除了禁止警告之外,您可以做的事情并不多.并添加注释,解释为什么您可以保证集合的元素确实是正确的类型. (2认同)