Я создал небольшую утилиту, которая помогает мне разобраться мою карту по значениям (на основе одного из StackOverflow ответов дать кредит):Дженерики проблема с Maven построить
public static <K, V extends Comparable> Map<K, V> sortMapByValues(Map<K, V> original) {
final ValueComparator<K, V> comparator = new ValueComparator<K, V>(original);
final Map<K, V> sorted = new TreeMap<K, V>(comparator);
sorted.putAll(original);
return sorted;
}
И ValueComparator:
static class ValueComparator<K, V extends Comparable<V>> implements Comparator<K> {
private final Map<K, V> base;
public ValueComparator(Map<K, V> base) {
this.base = base;
}
public int compare(K a, K b) {
return base.get(b).compareTo(base.get(a));
}
}
Теперь это работает очень хорошо, когда в моей IntelliJ 10 IDE код работает и выполняет то, что я ожидаю.
Но если я пытаюсь построить проект по мавена из командной строки я получаю следующее сообщение об ошибке:
type parameter V is not within its bound
ошибка называется на первой строке sortMapByValues () метод
Я использую JDK 6 в своей среде IDE, и мой плагин компилятора maven также установлен на 1.6.
Любые советы оценили
Вы уверены, что вы используете один и тот же пакет JDK в обеих средах (IDE и Maven)? –