![](/img/trans.png)
[英]java.lang.ClassCastException: java.lang.Integer cannot be cast
[英]java.lang.ClassCastException: java.lang.Short cannot be cast to java.lang.Integer when sorting
如果值是Short
類型HashMap<Long, Short>()
如何按值對哈希圖排序?
當我使用通用排序
public static <K extends Comparable<K>, V extends Comparable<V>> Map<K, V> sortByValues(final Map<K, V> map) {
Comparator<K> valueComparator = new Comparator<K>() {
public int compare(K k1, K k2) {
int compare = map.get(k1).compareTo(map.get(k2));
return compare != 0 ? compare : k1.compareTo(k2);
}
};
Map<K, V> sortedByValues = new TreeMap<K, V>(valueComparator);
sortedByValues.putAll(map);
return sortedByValues;
}
我收到此錯誤:
java.lang.ClassCastException:無法將java.lang.Short強制轉換為java.lang.Integer
此代碼中的任何地方都沒有顯式的類型轉換。
因此,我得出的結論是, ClassCastException
是由將某些通用方法返回的值分配給具有特定類型的變量時編譯器插入的隱式類型轉換引起的。
此外,由於隱式類型轉換僅在您/某人選擇忽略或禁止有關不安全轉換等的Java編譯器警告的情況下失敗,因此我得出結論:
簡而言之,問題的原因不在問題中包含的代碼中。 在別的地方...
將來,請確保包括:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.