我在下面有以下代码:
public static void main(String args[])
{
start();
}
我收到此错误:无法从静态上下文引用非静态方法start()。
我该怎么做?
答案 0 :(得分:7)
创建类的实例并调用该实例的start
方法。
如果您的类名为Foo,请在main
方法中使用以下代码:
Foo f = new Foo();
f.start();
或者,将方法start
设为静态,方法是将其声明为静态。
答案 1 :(得分:5)
希望这可以帮助你..
public class testProgarm {
private static void start() {
System.out.println("Test");
}
public static void main(String[] args) {
start();
}
}
但是,将方法设为静态并不是一个好习惯。您应该实例化一个对象并调用对象的方法。如果你的对象没有状态,或者你需要实现一个帮助方法,那么静态就是你的选择。
答案 2 :(得分:0)
一种方法是在main方法中创建另一个类的实例,例如newClass
并在其中调用start()
方法。
newClass class = new newClass();
class.start();
答案 3 :(得分:0)
对于非静态(&实例)方法,您可能需要一个实例 类来访问它。
试试这个:
public class TestClass {
public static void main(String[] args) {
start();
TestClass tc = new TestClass();
tc.start1()
}
// Static method
private static void start() {
System.out.println("start");
}
// Non-static method
private void start1() {
System.out.println("start1");
}
}