0

私は最近 Java の学習を始めましたが、最後に行ったのはジェネリック プログラミングとリンク リストでした。現在、リンクされたリストからノード クラスをジェネリックとして実装しようとしていますが、問題が発生していました。toStringこのリンクされたリストを反復処理してその要素を出力できるメソッドを宣言しようとしていますが、NullPointerException呼び出すたびにlink.toString()エラーが発生し続け、なぜこのエラーが発生するのか混乱しています。私のtoStringメソッドの形式が効率的ではないことはわかっていますが、本の指示に従おうとしていました。Nodeクラスとアプリケーションも紹介しています。

public class GenericNode<E> {

    private E data;
    private GenericNode<E> link;
    public GenericNode(E intialData, GenericNode<E> initialLink){
        data=intialData;
        link=initialLink;

    }
    public GenericNode<E> addNodeAfter( E element ) {
        link = new GenericNode<E>( element, link );
        return link;
    }

    public String toString(){


        String field1=" ";
        String field2=" ";
        String result=" ";

        if(data==null){
            field1="dummy";
            System.out.println("in dummy");
        }
        field1="Data: "+ data.toString()+ "\n";
        if(link==null){
            field2="null in tail!";
            System.out.println("in tail");
        }
        field2="link: data: "+link.data.toString() ;


        if(link!=null){
            result=field1+field2+link.toString();
        }

        return field1+field2;

    }
}

public class NodeAppilication {

    public static void main(String[] args){

        GenericNode<String> head=new GenericNode<String>("Paul", null);
        GenericNode<String> tail=new GenericNode<String>("Saul",head.addNodeAfter("Saul"));
        //figure 1
        System.out.print(head.toString());
        //figure2
        tail.toString();

        GenericNode<String> dummy=new GenericNode<String>(null,head);

    }

}
4

1 に答える 1