Фон
Создайте Map
, который можно отсортировать по значению.
Проблема
Код выполняется должным образом, но не компилируется чисто:
http://pastebin.com/bWhbHQmT
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() );
}
});
...
Синтаксис для передачи Comparable
в качестве универсального параметра вместе с Map.Entry<K, V>
(где V
должно быть Comparable
?) - так что (Comparable)
Typecast, показанный в предупреждении, может быть отброшен - ускользает от меня.
Предупреждение
Явная жалоба компилятора:
SortableValueMap.java: 24: warning: [unchecked] непроверенный вызов compareTo (T) как члена типа raw java.lang.Comparable
return ((Comparable)entry1.getValue()).compareTo( entry2.getValue() );
Вопрос
Как можно изменить код для компиляции без какого-либопредупреждения (без их подавления при компиляции с -Xlint:unchecked
)?
Связанные
Спасибо!