Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 可序列化类NodeListImpl未声明long类型的静态最终SerialVersionId字段_Java_Generics - Fatal编程技术网

Java 可序列化类NodeListImpl未声明long类型的静态最终SerialVersionId字段

Java 可序列化类NodeListImpl未声明long类型的静态最终SerialVersionId字段,java,generics,Java,Generics,我对泛型的东西很陌生。我经历了“NodeListImpl是一个原始类型。对泛型类型NodeListImpl的引用应该参数化”,并且对此有一些疑问,因为我还没有完全理解 代码: 公共类节点{ 私有字符串名称; 私人T值; private NodeListImpl nodes=new NodeListImpl(); 公共void addChild(节点子节点){ this.nodes.add(子节点); } } 公共接口列表扩展了Iterable{ 公共抽象布尔包含(对象e); 公共抽象布尔加法;

我对泛型的东西很陌生。我经历了“NodeListImpl是一个原始类型。对泛型类型NodeListImpl的引用应该参数化”,并且对此有一些疑问,因为我还没有完全理解

代码:

公共类节点{
私有字符串名称;
私人T值;
private NodeListImpl nodes=new NodeListImpl();
公共void addChild(节点子节点){
this.nodes.add(子节点);
}
}
公共接口列表扩展了Iterable{
公共抽象布尔包含(对象e);
公共抽象布尔加法;
公开摘要无效优先(T e);
公共摘要T peek first();
公共抽象布尔值为空();
公共摘要T pollFirst();
公开摘要无效清除();
}
公共类ListImpl扩展LinkedList实现列表{
}
公共接口节点列表扩展了Iterable{
公共抽象布尔包含(节点e);
公共抽象布尔加法(节点e);
公开摘要无效地址优先(节点e);
公共抽象节点peekFirst();
公共抽象布尔值为空();
公共抽象节点pollFirst();
公开摘要无效清除();
}
公共类NodeListImpl扩展LinkedList实现NodeList{
}
任务是:

  • 写一个列表,它可以处理存储和操作所有类型的数据。例如:整数列表、B类列表等

  • 编写该列表的专用版本,可以执行相同的操作,但仅限于节点

  • 问题:

  • 因为我们的列表需要能够处理所有类型的数据,所以我想我们应该把它列为列表。对吗

  • 我们的节点列表应该只能处理节点,所以我将其设置为节点列表。对吗

  • 如前所述,我得到了“NodeListImpl是一个原始类型。对泛型类型NodeListImpl的引用应该参数化”。我知道,节点本身有一个泛型类型,因为它需要存储一个变量类型的值。当我说NodeListImpl时,它会以某种方式阻塞Node的视图。因此,我尝试了一些类似NodeListImpl>的方法,但不起作用。我做错了什么

  • 非常感谢

    考虑1:

    列表
    可以

    考虑到2: 您的
    节点列表
    类错误
    class NodeList…
    声明一个类
    NodeList
    ,该类具有名为
    Node
    的类型参数,该参数将对类
    Node
    进行阴影处理。你应该写什么:

    class NodeList<T extends Node>
    
    类节点列表
    
    然后您有一个类型参数为
    T
    的类,但是
    T
    必须是
    节点的子类

    考虑到3:
    您的节点类也是一个模板类,因此它还需要一个参数
    T
    ,例如
    NodeList
    。但是为什么
    Node
    是通用的?

    从哪里可以得到3的警告。请说明该警告的行。@gexicide:我在“public interface NodeList extends Iterable”中得到该警告。Node是泛型的,因为Node需要能够保存不同类型的值。字符串、Int、类B等等,所以我将其设置为泛型。我错了吗?顺便说一句:我不想成为Node的子类。我想要的是NodeList只能是一个节点列表,节点本身可以存储所有类型的值。就这些。。。
    class NodeList<T extends Node>