1. ホーム
  2. java

[解決済み] The expression of type List needs unchecked conversion...'を修正するには?

2022-05-05 21:58:12

質問

Javaスニペットで。

SyndFeedInput fr = new SyndFeedInput();
SyndFeed sf = fr.build(new XmlReader(myInputStream));
List<SyndEntry> entries = sf.getEntries();

最後の行は警告を発生させます

型の式は List に適合するようにチェックなしの変換が必要です。 List<SyndEntry> "です。

これを修正する適切な方法は何でしょうか?

どのように解決するのですか?

以来 getEntries は生の List しかし、それは何でも保持することができる。

警告を出さない方法は、新しい List<SyndEntry> の各要素をキャストします。 sf.getEntries() の結果を SyndEntry を作成してから、新しいリストに追加します。 Collections.checkedList が行います。 ではない は、このチェックを代わりに行ってくれるのです。

前もって自分でキャストしておくことで、Javaジェネリックの保証条件に従うことになります。 ClassCastException が発生した場合、コンパイラが挿入した見えないキャストではなく、ソースコードにあるキャストに関連付けられます。