Java 与泛型、接口和扩展混淆

Java 与泛型、接口和扩展混淆,java,generics,interface,comparable,Java,Generics,Interface,Comparable,所以我正试图为一个通用链表和跳过列表编写一个程序。我还想在工作中使用接口和超类,以备将来使用,但我似乎不知道如何使所有的东西都与所有泛型类型一起工作 这是我现在的基本想法: 我的列表ADT和节点类,所有内容都将从中扩展: public class Node<K extends Comparable<K>> { K key; Object data; ... } public interface List<T> { public

所以我正试图为一个通用链表和跳过列表编写一个程序。我还想在工作中使用接口和超类,以备将来使用,但我似乎不知道如何使所有的东西都与所有泛型类型一起工作

这是我现在的基本想法:

我的列表ADT和节点类,所有内容都将从中扩展:

public class Node<K extends Comparable<K>> {
    K key;
    Object data;
    ...
}

public interface List<T> {
    public void insert(T value);
    public void delete(T value);
}
公共类节点{
K键;
对象数据;
...
}
公共接口列表{
公共空白插入(T值);
公共无效删除(T值);
}
以链表为例:

public class LList<T extends Comparable<T>> implements List<LLNode<T>>
public class LLNode<K extends Comparable<K>> extends Node<K>
公共类LList实现列表
公共类LLNode扩展节点
我这样做对吗

编辑:更具体地说,当我尝试创建这个类的非常基本的实例时,我遇到了一些问题,例如

List<String> linkedList = new LList<String>();
List[] lists = {linkedList};
sets[0].insert("cookie");
List linkedList=new-LList();
List[]lists={linkedList};
设置[0]。插入(“cookie”);

这给了我一个编译器错误:java.lang.String不能强制转换为project.LLNode

我认为有三个选项:

首先,将使用
列表

公共类LList实现列表
{
@凌驾
公共空白插入(T值)
...
}
这样就不需要更多的
节点

,您的第二个选项:您可以保持实现和使用
列表的方式

最后如果您需要同时使用
节点
,我想这是您需要的
列表
(问题未明确),使用
节点
只是在内部使用第一个选项,如果不可能,请更清楚您的需要,我会尽力帮助您


问候。

是什么让你认为这不正确?您是否有编译器错误或意外行为?可能是重复的。我将查看该线程。我更新了我的编译器错误。如本文所述,
LList
不可分配给
List
,而是
List
,因此insert调用需要一个
LLNode
而不是一个字符串。我如何重新构造它以使LList工作?
    public class LList<T extends Comparable<T>> implements List<T>
    {
        @Override
        public void insert(T value)
        ...
    }