0

因此,我知道此错误消息告诉我出了什么问题,但我无法确定为什么会出现此错误以及如何解决它:

类节点中的构造函数节点不能应用于所需的给定类型:找到 E#1:没有参数原因:实际参数列表和形式参数列表的长度不同,其中 E#1、E#2 是类型变量:E#1 扩展了在中声明的对象MyStack E#2 类扩展了在 Node 类中声明的 Object

我过去使用链表实现了堆栈,以前从未遇到过这种情况。我已经包含了 MyStack 类和 Node 类的第一部分代码,因为我不认为包含的方法是相关的。如果他们愿意,我很乐意对其进行编辑。我的主要问题是我不明白为什么它要创建两个单独的泛型类型。我知道它告诉我实际参数列表和正式参数列表的长度不同,但这怎么可能,我该怎么做才能解决这个问题?

public class MyStack<E> extends Node<E>{

//pieced together linked list
private int cnt;
private Node<E> head;


public MyStack() {
    head = null;
    cnt = 0;
}

这是节点类。

public class Node <E>{ 



public Node<E> link;
public E item;

public Node(E data) {
    item = data;
    link = null;
}

关于为什么显示 2 种不同的泛型类型的任何线索都会有所帮助。干杯!

4

1 回答 1

4

由于没有无参数构造函数 forNodeMyStackextends Node,您需要指定构造函数 forMyStack将如何调用构造函数 for Node。目前,这不会编译,因为在super构造函数的开头没有构造函数调用MyStack

于 2013-10-29T04:06:21.670 回答