1. ホーム
  2. java

[解決済み] インスタンス参照でアクセスされる静的メンバ

2022-02-07 21:27:25

質問

関数を呼び出すと、その背景が黄色になり、"static member being accessed by instance reference,"と表示されますが、エラーもなく完全に動作しています。

どうにかして解決しなければならないのでしょうか、それとも大丈夫なのでしょうか?

以下はコードサンプルです。

class A {
    static int x = 2;
    ...
}

インスタンス化は他のファイルです。

A a = new A();
a.x;

解決方法は?

この警告は、次のような場合に発生します。

class A {
 static int x = 2;
}

...

A a = new A();
a.x; // accessing static member by instance

静的メンバにアクセスする必要があります。 x は、代わりにクラス (またはインターフェイス) を経由します。

A a = new A();
A.x;

静的メンバはクラスに属し、特定のインスタンスには属しません。