Предположим, что у меня есть 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
-ом?
Свежие комментарии