今天测试代码时遇到

  • Error:(6, 55) java: non-static method sayGoodbye() cannot be referenced from a static context

的报错,代码如下:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Greeting: " + GoodByeWorld.sayGoodbye());
    }
}
class GoodByeWorld {
    public String sayGoodbye() {
        return "GoodBye";
    }
}

原因:

不能直接调用类变量和类方法。

解决方法一:

将方法改成类方法,如下:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Greeting: " + GoodByeWorld.sayGoodbye());
    }
}
class GoodByeWorld {
    public String static sayGoodbye() {
        return "GoodBye";
    }
}

解决方法二:

生成实例,调用实例中的非静态方法,如下:

public class HelloWorld {
    public static void main(String[] args) {
        GoodByeWorld greeting = new GoodByeWorld();
        System.out.println("Greeting: " + greeting.sayGoodbye());
    }
}
class GoodByeWorld {
    public String sayGoodbye() {
        return "GoodBye";
    }
}

 

转载于:https://www.cnblogs.com/lipohong/p/10594600.html

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐