簡體   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