0

私は deque (両端の que) クラスに取り組んでいます。私はまだすべてのメソッドでやるべきことがたくさんありますが、コーディングをしながらテストできるようにしたいと思っています。スレッド "main" java.lang.NoSuchMethodError: main で例外が発生しています。これを修正するための助けをいただければ幸いです。

前もって感謝します、ここに私のコードがあります:

class DNode<E>
{
    private E data;
    private DNode<E> lLink, rLink;

    public DNode(E iData, DNode<E> lefLink, DNode<E> riteLink)
    {
        data = iData;
        rLink = riteLink;
        lLink = lefLink;
    }

    public E getData()
    {return data;}

    public void setData(E aData)
    {data = aData;}

    public DNode<E> getRightLink()
    {return rLink;}

    public void setRightLink(DNode<E> righty)
    {rLink = righty;}

    public DNode<E> getLeftLink()
    {return lLink;}

    public void setLeftLink(DNode<E> lefty)
    {lLink = lefty;}

    public void addNodeAfter(E item)
    {rLink = new DNode<E>(item, this, rLink);}

    public void removeNodeAfter()
    {rLink = rLink.getRightLink();}
}

class Deque<E>
{
    private int manyNodes = 0;
    private DNode<E> front, rear;

    public Deque()
    {
        manyNodes = 0;
        front = null;
        rear = null;
    }


    public boolean isEmpty()
    {return (manyNodes == 0);}

    public void addAtEnd(E item)
    {
        if(isEmpty())
        {
            front.addNodeAfter(item);
            rear = front;
        }
        else
        {
            rear.addNodeAfter(item);
            rear = rear.getRightLink();
        }
        manyNodes++;
    }

    public void addtAtFront(E item)
    {
        if(isEmpty())
        {
            front.addNodeAfter(item);
            rear = front;
        }
        else
        {
            front.addNodeAfter(item);
        }
    }

    public void removeFirst() throws NoSuchFieldException
    {
        if(manyNodes == 0)
            throw new NoSuchFieldException();
        front.removeNodeAfter();
    }

    public void removeLast() throws NoSuchFieldException
    {
        if(manyNodes == 0)
            throw new NoSuchFieldException("Ya dun goofed");
        rear.removeNodeAfter();
    }

    public void print()
    {
        DNode<E> trace;
        for(trace = front; trace.getRightLink() != null; trace = trace.getRightLink())
            System.out.println(trace.getData());
    }
}


class DequeRun
{
    public static void main(String[] args)
    {
        Deque<String> test1 = new Deque<String>();
        test1.addAtEnd("Ryan");
        test1.addAtEnd("Mike");
        test1.print();
    }
}
4

1 に答える 1

3

DequeRun を public にします。そうしないと、jvm はその中に main メソッドを見つけることができません

于 2013-10-19T05:15:43.887 に答える