【踩坑】報錯 non-static method xxx() cannot be referenced from a static context


今天測試代碼時遇到

  • 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";
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM