修复无法对非静态方法进行静态引用
时间: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"); } }