1. ホーム

[解決済み】型Twoから非静的メソッドfxn(int)への静的参照を作れない【重複あり

2022-03-17 13:57:34

質問

<ブロッククオート

重複の可能性があります。

非静的メソッドは静的コンテキストから参照できない」理由は何ですか?

非静的メソッドを静的に参照することができない

非静的フィールドへの静的な参照を作成できません。

私のコードのどこが問題なのか理解できません。

class Two {
    public static void main(String[] args) {
        int x = 0;

        System.out.println("x = " + x);
        x = fxn(x);
        System.out.println("x = " + x);
    }

    int fxn(int y) {
        y = 5;
        return y;
    }
}

スレッド "main" で例外発生 java.lang.Error: 未解決のコンパイル問題です。 型から非静的メソッド fxn(int) への静的参照を作成できません。

解決方法は?

このため main メソッドは static であり fxn() メソッドがない場合、最初に Two オブジェクトを作成します。だから、どちらかのメソッドを変更する。

public static int fxn(int y) {
    y = 5;
    return y;
}

のコードを変更するか main に変更します。

Two two = new Two();
x = two.fxn(x);

の続きを読む static をご覧ください。 Javaチュートリアル .