繁体   English   中英

双端队列java.lang.NoSuchMethodError:main

[英]Deque java.lang.NoSuchMethodError: 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();
    }
}

将您的DequeRun设为公开,否则jvm将无法在其中找到main方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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