2

我目前压制了 eclipse 关于在这个片段中使用原始类型的唠叨

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

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

List<Object[]>

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

4

2 回答 2

2

您可以将方法签名更改为:

List<Object> doSomething(Integer arg1, ...) {
    ....
}

对任何呼叫客户都没有负面影响。当然,这只是消除了@SuppressWarnings在该方法本身上使用注释的需要。对于您必须在使用List该类的原始版本的代码的其他部分中获得的所有警告,它没有任何作用。

于 2013-02-27T02:22:25.590 回答
1

您通常可以将 raw 替换ListList<?>.

如果您明确知道这些项目是Object[],您可以简单地施放

List<Object[]> doSomething(Integer arg1, ...) {
    List rawList = ...
    @SuppressWarnings("unchecked")
    List<Object[]> cookedList = (List<Object[]>)rawList;
    return cookedList;
}
于 2013-02-27T02:33:57.560 回答