我目前正在抑制日食中关于在此代码段中使用原始类型的唠叨
@SuppressWarnings({ "rawtypes" })
List doSomething(Integer arg1, ...) {
....
}
我实际上正在返回从旧版本的Hibernate生成的原始类型List
。有没有办法更改此API以返回:
List<Object[]>
我只是将列表投射到上面吗?
答案 0 :(得分:2)
您可以将方法签名更改为:
List<Object> doSomething(Integer arg1, ...) {
....
}
否 对任何调用客户端产生负面影响。当然,这只是不需要在该方法本身上使用@SuppressWarnings
注释。它对您使用List
类的原始版本的代码的其他部分必须获得的所有警告没有任何作用。
答案 1 :(得分:1)
您通常可以将原始List
替换为List<?>
。
如果你明确知道这些项目是Object[]
,你可以简单地投射
List<Object[]> doSomething(Integer arg1, ...) {
List rawList = ...
@SuppressWarnings("unchecked")
List<Object[]> cookedList = (List<Object[]>)rawList;
return cookedList;
}