修复无法对非静态方法进行静态引用
时间:2020-02-23 14:34:13 来源:igfitidea点击:
在本教程中,我们将看到如何解决无法对非静态方法进行静态引用 (cannot make static reference to non-static method.)。
让我们在举例的帮助下了解此错误。
package org.igi.theitroad;
public class JavaHelloWorld {
public static void main(String args[])
{
sayHello();
}
public void sayHello()
{
System.out.println("Hello world from theitroad");
}
}
上面的程序无法编译,我们将获得下面的编译错误。
cannot make static reference to non-static method sayHello from the type JavaHelloWorld
为什么会收到这个错误?
答案很简单。
你不能调用给不存在的东西。
由于我们没有创造一个对象 JavaHelloWorld,非静态方法 sayHello()尚不存在
现在你可以用两种方式解决这个问题。
声明Sayhello方法静态
我们可以声明Sayhello()方法静态和编译器不会再抱怨。
package org.igi.theitroad;
public class JavaHelloWorld {
public static void main(String args[])
{
sayHello();
}
public static void sayHello()
{
System.out.println("Hello world");
}
}
输出:
Hello world
从javahelworlld对象调用sayhello()
我们可以创建一个对象 JavaHelloWorld类和呼叫 sayHello()从中。
package org.igi.theitroad;
public class JavaHelloWorld {
public static void main(String args[])
{
JavaHelloWorld jhw=new JavaHelloWorld();
jhw.sayHello();
}
public void sayHello()
{
System.out.println("Hello world");
}
}

