我知道其他人也犯了同样的错误,但我很难找到任何有用的东西来解决我过去的答案中的问题。我正在尝试实现我为我的数据结构类构建的一些基本的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工具检查方法签名时,它们对于我定义它们的位置以及我尝试使用它们的位置是相同的。