私はObjectでスタックを理解しようとしているので、これを入力しましたが、問題は、私が意味することができない、この本当に奇妙なメッセージが出てきたことです。これは、 "スレッドの例外"メイン "java.lang.NoSuchMethodError:Stack.push(Ljava/lang/Object;)V (TestObjectStack.main(TestObjectStack.java:12))"と書かれています。私はそれをgoogledしかし、私はまだ間違って何をしているのか分からない。私はメインメソッドのヘッダーをredidしましたが、それは修正されませんでした。誰かが私が逃している提案や洞察を持っていますか?ありがとう!:Java NoSuchMethodError
public class TestObjectStack
{
public static void main(String[] args)
{
Object o;
Stack test = new Stack();
test.push("Fred");
test.push(20);
test.push(new ThingB("Barney", 42));
Stack copy = new Stack(test);
System.out.println("Stack test: " + test);
System.out.println(test.pop());
System.out.println("Stack test: " + test);
System.out.println("Stack copy: " + copy);
if(test.isEmpty()) System.out.println("Empty");
o = test.pop();
System.out.println(o);
if(o instanceof String)
{
String s = (String) o;
System.out.println("String length = " + s.length());
}
else
System.out.println("Not a String");
if(test.isEmpty()) System.out.println("Empty");
o = test.pop();
System.out.println(o);
if(o instanceof String)
{
String s = (String) o;
System.out.println("String length = " + s.length());
}
else
System.out.println("Not a string");
if(test.isEmpty()) System.out.println("empty");
}
}
class ThingB
{
private String _name;
private int _ID;
public ThingB(String name, int ID)
{
_name = name;
_ID = ID;
}
public String toString()
{
return "Thing B - name - " + _name + " ID = " + _ID;
}
}
class Stack
{
private Object[] _store;
private int _top;
private static final int MAXSIZE = 50;
public Stack()
{
_store = new Object[MAXSIZE];
_top = 0;
}
public Stack(Stack other)
{
_store = new Object[other._store.length];
_top = other._top;
for(int i = 0; i < _top; ++i)
{
_store[i] = other._store[i];
}
}
public boolean isEmpty()
{
return (_top == 0);
}
public void push(Object item)
{
if(_top >= _store.length)
{
Object[] temp = new Object[_store.length+ MAXSIZE];
for(int i = 0; i < _top; ++i)
{
temp[i] = _store[i];
}
_store = temp;
}
_store[_top] = item;
++_top;
}
public Object pop()
{
if(_top == 0) return 0;
--_top;
return _store[_top];
}
public String toString()
{
String s = "";
s = s + "--Top--";
for(int i = _top-1; i >= 0; --i)
{
s = s + " " + _store[i];
}
s = s + "--Bottom--";
return s;
}
}
はすべてを再コンパイルします。 – EJP
私はそれを試みました。別のプログラムを作成した後で、すべてをコピーし、プログラムを削除し、すべてをリサイズしましたが、問題は解決しません。 – Vaak
*複数のテキストエディタでコードを開いていないことを確認してください*。 cmdを使用してコンパイルする場合は、ソースファイルのパスを確認します。あなたがIDEを使用している場合コードを実行する前に* CleanとBuild *を試してください。 – Arvind