0
私はクラスの中でMultiKeyを使うようにHashMapを変更しています。Apache Collections4のマルチキーを使用すると、チェックされていないコールの意味と解決方法を教えてください。
前:
はHashMap<String, MyObject> map = new HashMap<>();
今私のキーが2列に依存しますので、私が使用しています:
:HashMap<MultiKey, MyObject> map = new HashMap<>();
map.put(key(s1,s2),obj);
private static MultiKey key(String s1, String s2) {
return new MultiKey(s1,s2);
}
IntelliJのは、以下のMultiKey
にコンストラクタの呼び出しを強調し、私に語りました
Unchecked call to 'MultiKey(K,K)' as a member of raw type 'org.apache.commons.collections4.keyvalue.MultiKey
Signal places where an unchecked warning is issued by the compiler.
'Map、MyObject >>'私もこの変更を行いましたが、何が起こるのを防ぐのですか?私はそれについて何の警告も得ていないからです。ありがとう。 –
CeePlusPlus
変数が 'Map'として定義されている場合は、 'MultiKey'をキーとして置くことができます(例えば、' MultiKey ')。後で、 '(String)entry.getKey()。getKey(0)'を使ってそのキーからコンポーネントを抽出しようとすると、それが 'String'であると期待できます。しかし、整数型であるため、実行時にキャストが失敗します。これがコンパイラが警告する理由です。 –