驱动程序的NoSuchMethodError使用为同一文件夹中的类定义的方法

时间:2014-01-24 19:15:38

标签: java eclipse nosuchmethoderror

我知道其他人也犯了同样的错误,但我很难找到任何有用的东西来解决我过去的答案中的问题。我正在尝试实现我为我的数据结构类构建的一些基本的Stack和Queue类,并且我已经构建了两个运行于同一问题的驱动程序方法。他们可以很好地实例化类的成员,并且在Eclipse和命令行中都可以很好地编译,但是当我尝试使用push(CharNode)或enqueue(CharNode)方法时(CharNode是我创建的另一个非常典型的类)节点质量),我得到以下错误:

“线程中的异常”主“java.lang.NoSuchMethodError:Stack.push(LCharNode;)V”

我正在查看过去的答案,看看出了什么问题,我不认为Classpath在编译时和运行时之间发生了变化(或者至少我没有改变它 - 我试图在之后立即运行它编译),我不认为这可能是没有正确的库的问题,因为所有这些类都在同一个src文件夹中。有没有人对我能做些什么来解决这个问题?

这是我的CharNode,Stack和StackTest类的代码: CharNode:

public class CharNode {
private char name;
private CharNode nextNode;

public CharNode(char data, CharNode insert){
    name = data;
    nextNode = insert;
}

public void setData(char newData){
    name = newData;
}

public char getData(){
    return name;
}

public void setNextNode(CharNode link){
    nextNode = link;
}

public CharNode getNextNode(){
    return nextNode;
} 
}

堆栈:     公共类Stack {

private CharNode top;

public Stack(){
    top = null;
}

public boolean isEmpty(){
    if (top == null) {
        return true;
    }
    else {
        return false;
    }
}

public void push(CharNode newLink){
    if (isEmpty()){
        top = newLink;
    }
    else {
        newLink.setNextNode(top);
        top = newLink;
    }
}

public CharNode pop(){
    if (isEmpty()){
        return null;
    }
    else {
        CharNode value = top;
        top = top.getNextNode();
        return value;
    }
} 
}

StackTest:

import java.io.IOException;

public class Stacktest {
    public static void main(String[] args) throws IOException
    {
        Stack newStack = new Stack();
        CharNode newNode = new CharNode('c', null);
        System.out.print("We got this far 1 \n");
        newStack.push(newNode);
        System.out.print("We got this far 2 \n");
    }
}

看起来其他人对此没有问题,但是当我尝试运行它时的输出是:“线程中的异常”主“我们到目前为止1 java.lang.NoSuchMethodError:Stack.push(LCharNode;)V     在Stacktest.main(Stacktest.java:9)“ (没有发布截图的声誉。)

我不认为它正在尝试实现不同的堆栈,因为当我使用Refactor工具检查方法签名时,它们对于我定义它们的位置以及我尝试使用它们的位置是相同的。

0 个答案:

没有答案