バックグラウンド
Map
値でソートできる を作成します。
問題
コードは期待どおりに実行されますが、正常にコンパイルされません。
public class SortableValueMap<K, V> extends LinkedHashMap<K, V> {
...
public void sortByValue() {
...
Collections.sort( list, new Comparator<Map.Entry>() {
public int compare( Map.Entry entry1, Map.Entry entry2 ) {
return ((Comparable)entry1.getValue()).compareTo( entry2.getValue() );
}
});
...
(where must be ?)Comparable
にジェネリック パラメータとして渡すための構文(警告に表示された型キャストを削除できるようにするため) は、私にはわかりません。Map.Entry<K, V>
V
Comparable
(Comparable)
警告
コンパイラの意地悪な苦情:
SortableValueMap.java:24: 警告: [チェックされていない] raw タイプ java.lang.Comparable のメンバーとしての compareTo(T) へのチェックされていない呼び出し
return ((Comparable)entry1.getValue()).compareTo( entry2.getValue() );
質問
警告なしで (コンパイル中に警告を抑制せずに) コンパイルするようにコードを変更するにはどうすればよい-Xlint:unchecked
ですか?
関連している
- TreeMap の値による並べ替え
- Map<Key, Value> を値で並べ替える (Java)
- http://paaloliver.wordpress.com/2006/01/24/sorting-maps-in-java/
ありがとうございました!