回答編集履歴

1

セッターを設けずに1度のみ初期化を許す?

2015/09/21 16:51

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -5,3 +5,13 @@
5
5
  その変数が「初期化されていない状態」を示す値が使えない場合(intの場合は0や負の数含め取りうる値すべて初期化値としてあり得る,参照型はnullでの初期化もあり得るような場合),
6
6
 
7
7
  「初期化されたかどうか」のprivate static booleanフィールドを設け,初期化前にそのbooleanをチェックすることで設定の可否を判定する方法もあります.
8
+
9
+ ---
10
+
11
+
12
+
13
+ セッターを設けずに1度のみの初期化を許すと言うのは無理な話だと思います.
14
+
15
+ staticフィールドなのでfinalにすると外部からの情報で初期化は無理ですし(静的初期化子では外部から情報を受け取れない).
16
+
17
+ シングルトンにして初期化処理メソッドを設ける方法も考えられますが,インスタンス化することの意味はさほどありませんし,そもそも取りようによってはこれもセッターになります.