「非静的メソッドは静的コンテキストから参照できません」という理由は何ですか? [重複] 質問する

「非静的メソッドは静的コンテキストから参照できません」という理由は何ですか? [重複] 質問する

初心者によくある間違いは、そのクラスのインスタンスを作成せずにクラス プロパティを「静的に」使用しようとすることです。その場合、前述のエラー メッセージが表示されます。

非静的メソッドを静的にするか、そのクラスのインスタンスを作成してそのプロパティを使用することができます。

この背後にある理由は何ですか? 解決策ではなく、理由が気になります。

private java.util.List<String> someMethod(){
    /* Some Code */
    return someList;            
}

public static void main(String[] strArgs){          
     // The following statement causes the error. 
    java.util.List<String> someList = someMethod();         
}

ベストアンサー1

存在しないものを呼び出すことはできません。オブジェクトを作成していないため、非静的メソッドはまだ存在していません。静的メソッドは (定義により) 常に存在します。

おすすめ記事