型安全性: チェックされていないキャスト 質問する

型安全性: チェックされていないキャスト 質問する

私の Spring アプリケーションのコンテキスト ファイルには、次のような内容が含まれています。

<util:map id="someMap" map-class="java.util.HashMap" key-type="java.lang.String" value-type="java.lang.String">
    <entry key="some_key" value="some value" />
    <entry key="some_key_2" value="some value" />   
</util:map>

Java クラスでは、実装は次のようになります。

private Map<String, String> someMap = new HashMap<String, String>();
someMap = (HashMap<String, String>)getApplicationContext().getBean("someMap");

Eclipse では、次のような警告が表示されます:

型の安全性: Object から HashMap<String,String> へのチェックなしのキャスト

何が悪かったのか?

ベストアンサー1

問題は、キャストが実行時チェックであることです。しかし、型の消去により、実行時には、他の および に関して、HashMap<String,String>との間に実際には違いはありません。HashMap<Foo,Bar>FooBar

鼻をつまんで使っ@SuppressWarnings("unchecked")てください。ああ、Java で具象化されたジェネリックを推進しましょう :)

おすすめ記事