0

したがって、このエラー メッセージが何が間違っているかを示していることは理解していますが、このエラーが発生する理由と解決方法を判断するのに苦労しています。

クラス Node のコンストラクタ Node は、指定された型に適用できません: E#1 が見つかりました: 引数がありません 理由: 実引数リストと仮引数リストの長さが異なりますが、E#1、E#2 は型変数です: E#1 は、宣言されたオブジェクトを拡張しますclass MyStack E#2 extends Object 宣言されたクラス Node

過去にリンクされたリストを使用してスタックを実装しましたが、これまでにこれに遭遇したことはありません。含まれているメソッドが関連しているとは思わないので、MyStack クラスと Node クラスのコードの最初のセクションを含めました。もしそうなら、私はそれらを編集して喜んでいます。私の主な問題は、なぜそれが2つの別々のジェネリック型を作っているのか理解できないということです. 実際の引数リストと正式な引数リストの長さが異なることを教えてくれていることは理解していますが、どうすればこれを解決できますか?

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

Node、およびMyStackextendsには引数のないコンストラクターがないため、 のコンストラクターが のコンストラクターを呼び出すNode方法を指定する必要があります。現在、コンストラクターの開始時にコンストラクター呼び出しがないため、これはコンパイルされません。MyStackNodesuperMyStack

于 2013-10-29T04:06:21.670 に答える