gpt4 book ai didi

java.lang.ClassCastException : java. 排序时 lang.Short 无法转换为 java.lang.Integer

转载 作者:行者123 更新时间:2023-12-02 11:22:33 24 4
gpt4 key购买 nike

如果值为Short,如何按值对 HashMap 进行排序类型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 cannot be cast to java.lang.Integer

最佳答案

此代码中的任何位置都没有显式类型转换。

因此,我得出结论,ClassCastException 是由编译器在将某些泛型方法返回的值分配给具有特定类型的变量时插入的隐式类型转换引起的。

此外,由于隐式类型转换仅在您/某人选择忽略或抑制有关不安全转换等的 Java 编译器警告的情况下才会失败,因此我得出结论:

  • 这一定发生了,并且
  • 这就是导致您出现问题的原因。

简而言之,问题的原因并不在于您在问题中包含的代码。它在其他地方......

<小时/>

将来,请务必包括:

  • 有足够的上下文让人们了解您的代码的使用情况。理想情况下是 MCVE。
  • 异常的完整堆栈跟踪。

关于java.lang.ClassCastException : java. 排序时 lang.Short 无法转换为 java.lang.Integer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49825048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com