如何从此代码中删除eclipse中的原始类型警告?

时间:2013-02-27 02:15:34

标签: java java-6

我目前正在抑制日食中关于在此代码段中使用原始类型的唠叨

@SuppressWarnings({ "rawtypes" })
List doSomething(Integer arg1, ...) {
    ....
}

我实际上正在返回从旧版本的Hibernate生成的原始类型List。有没有办法更改此API以返回:

List<Object[]>

我只是将列表投射到上面吗?

2 个答案:

答案 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;
}