我正在尝试实现通用的DDLinkedList条目。我定义了以下类。
class DoublyLinkedList<T extends Comparable<T>>
class DLLNode<T extends Comparable<T>>
Entry<K extends Comparable<K>, V> implements Comparable<Entry<K, V>>
一旦我尝试创建类型为Entry的DoublyLinkedlist数组,如下所示:
DoublyLinkedList<DLLNode<Entry<K, V>>> array[] = (DoublyLinkedList<DLLNode<Entry<K, V>>>[]) new DoublyLinkedList[TABLE_SIZE];
我收到一条错误消息:
"The type DLLNode<Entry<K,V>> is not a valid substitute for the bounded
parameter <T extends Comparable<T>> of the type DoublyLinkedList<T>"
从其他角度来看,我认为我可以进行通用的T型入境。
我的问题:
我会选择错误的方法还是执行错误?
最佳答案
您对DoublyLinkedList
的定义说,它必须采用与自身可比的类型。但是您对DLLNode
的定义未实现Comparable<DLLNode<T>>
,这意味着DLLNode
与自己的类型不具有可比性。因此,您不能将DLLNode
用作DoublyLinkedList
中的参数类型。