[解決済み] コンストラクタでの静的ファイナルフィールドの初期化
2023-04-19 13:22:55
質問
public class A
{
private static final int x;
public A()
{
x = 5;
}
}
-
final
は、変数が一度だけ(コンストラクタ内で)割り当てられることを意味します。 -
static
は、クラスのインスタンスであることを意味します。
なぜこれが禁止されているのかがわかりません。これらのキーワードはどこで干渉しあっているのでしょうか?
どのように解決するのですか?
コンストラクタは、クラスのインスタンスが生成されるたびに呼び出されます。したがって、上記のコードは、インスタンスが生成されるたびにxの値が再初期化されることを意味します。しかし、この変数はfinal(静的)と宣言されているため、次のようにするしかありません。
class A {
private static final int x;
static {
x = 5;
}
}
しかし、staticを削除すると、このように許可されます。
class A {
private final int x;
public A() {
x = 5;
}
}
or これ。
class A {
private final int x;
{
x = 5;
}
}
関連
-
[解決済み] explicit キーワードの意味は?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み] Pythonで静的なクラス変数は可能ですか?
-
[解決済み] 静的クラスとシングルトンパターンの違い?
-
[解決済み] C#でベースコンストラクタを呼び出す
-
[解決済み] あるコンストラクタを別のコンストラクタから呼び出す
-
[解決済み] Javaインターフェースでスタティックメソッドを定義できないのはなぜですか?
-
[解決済み] Javaリフレクションを用いた静的なプライベートfinalフィールドの変更
-
[解決済み] C++の静的コンストラクタ?プライベートな静的オブジェクトを初期化する必要があります
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException:5 エラー
-
Uncaught ReferenceError: は定義されていません。
-
が 'X-Frame-Options' を 'sameorigin' に設定したため、フレーム内に存在する。
-
強制型変換について
-
unsigned char* から const jbyte* {aka const signed char*} への変換が無効です。
-
SocketException java.netの4つの例外解決策。
-
アノテーション「@Retention」の役割
-
Server Tomcat v9.0 Server at localhost の起動に失敗しました。
-
Web Project JavaでPropertiesファイルを読み込むと、「指定されたファイルがシステムで見つかりません」というソリューションが表示されます。
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ