繁体   English   中英

两种不同的泛型类型出错

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM