首先,我想说明一下: 我不是在问 cannot find symbol
错误是什么意思,我只是问在什么情况下导致此错误的原因。
我最近研究了Java类。以下是我的第一个[非main
]类:
class Test {
public void test() {
System.out.println("Hello, world!");
}
}
class Main {
public static void main(String[] args) {
test();
}
}
但是出现以下错误:
exit status 1
Main.java:8: error: cannot find symbol
test();
^
symbol: method test()
location: class Main
1 error
任何人都可以解释为什么会发生这种情况吗?
System.out.println("Thanks!");
答案 0 :(得分:0)
方法test()未声明为静态。
您正在静态方法main()中调用非静态方法test()。如果您不想更改Test类,则必须按照以下步骤更改main()
public static void main(String[] args) {
Test t = new Test();
t.test();
}
如果不想太多更改main()。然后,您必须更改test()方法,如下所示: 公共静态无效性test(){}
和main()方法的内部:
Test.test()
答案 1 :(得分:0)
您不能在Main class中使用test()
方法。因为test()
方法在另一个类中定义,所以在Test类中。要访问其他类(主类)中的test()
方法,您必须创建一个对象,并且可以通过该对象访问test()
方法。 test()
方法是属于Test类的实例方法。
class Main {
public static void main(String[] args) {
Test test1 = new Test();
test1.test();
}
}