[英]Error with two different generic types
因此,我知道此错误消息告诉我什么地方出了问题,但是我无法确定为什么要提出此错误以及如何解决该错误:
无法将类Node中的构造方法Node应用于所需的给定类型:找不到E#1:没有参数原因:实际和形式参数列表的长度不同,其中E#1,E#2是类型变量:E#1扩展了在其中声明的对象MyStack E#2类扩展了在Node类中声明的对象
我过去使用链表实现堆栈,以前从未遇到过。 我已经包括了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;
}
关于为何显示两种不同的泛型类型的任何线索都将有所帮助。 干杯!
由于没有Node
无参数构造函数,并且MyStack
扩展了Node
,因此您需要指定MyStack
的构造函数将如何调用Node
的构造函数。 当前,它不会编译,因为在MyStack
的构造函数的开头没有super
构造函数调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.