2

私は現在、このスニペットでのraw型の使用についての日食からのしつこいを抑制しています

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

私は実際にList古いバージョンのHibernateから生成されたraw型を返しています。このAPIを変更して以下を返す方法はありますか?

List<Object[]>

リストを上記にキャストするだけですか?

4

2 に答える 2

2

メソッドのシグネチャを次のように変更できます。

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

呼び出し元のクライアントに悪影響を与えることはありません。もちろん、これにより、@SuppressWarningsそのメソッド自体で注釈を使用する必要がなくなります。Listクラスの未加工バージョンを使用しているコードの他の部分で取得する必要があるすべての警告に対しては何もしません。

于 2013-02-27T02:22:25.590 に答える
1

List通常、 rawを に置き換えることができますList<?>

アイテムがObject[]であることが明確にわかっている場合は、単純にキャストできます

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