04
Фев
2017

ClassCastException java.lang.Object cannot be cast to java.lang.Comparable при добавлении Object в TreeMap

Предположим, что у меня есть TreeMap c типом Object у ключа и значения. Я хочу положить в TreeMap Object:

TreeMap<Object, Object> treeMap = new TreeMap();
treeMap.put(new Object(), new Object());

Данный код выдаст ошибку:

java.lang.ClassCastException: java.lang.Object cannot be cast to java.lang.Comparable

в методе

final int compare(Object k1, Object k2) {
    return comparator==null ? ((Comparable<? super K>)k1).compareTo((K)k2)
        : comparator.compare((K)k1, (K)k2);
}

который находится внутри TreeMap.

Я понимаю, что если вместо Object возьму String, Integer или любой другой тип, то всё будет нормально. Почему не проходит с Оbject-ом?

Источник: https://ru.stackoverflow.com/questions/623339/classcastexception-java-lang-object-cannot-be-cast-to-java-lang-comparable-%D0%BF%D1%80%D0%B8-%D0%B4

Тебе может это понравится...

Добавить комментарий