-1

我在线程“main”java.lang.ClassCastException 中遇到了以下问题异常:java.lang.ref.SoftReference 无法转换为 java.lang.Comparable

代码如下。谢谢你的帮助!

PriorityQueue<SoftReference<Element<K, V>>> heap;
heap.add(new SoftReference<Element<K, V>>(newElement));

类Element的定义如下

class Element<K, V> implements Comparable<Element<K, V>>{
        long timeStamp;
    K key;
    V val;
    @Override
    public int compareTo(Element<K, V> o) {
    return new Long(timeStamp).compareTo(o.timeStamp);
    }
    Element(long ts, K key, V val){
        this.timeStamp = ts;
        this.key = key;
        this.val = val;
        }
}
4

1 回答 1

1

PriorityQueue没有自定义创建的AComparator期望其元素实现ComparableSoftReference但没有。尝试使用可以比较sPriorityQueue的自定义创建您的。ComparatorSoftReference

于 2013-08-17T17:11:16.647 回答