final
任意の瞬間に変数を作成することは可能ですか?最初の割り当てだけでなく、いつ不変になるかを決定したいと思います。
null
割り当てとして数えられないのであれば、それは完璧でしょう。したがって、nullで初期化する場合でも、必ずしもコンストラクターにあるとは限らない、コードの後の最初の割り当てにワイルドカードがあります。
final
任意の瞬間に変数を作成することは可能ですか?最初の割り当てだけでなく、いつ不変になるかを決定したいと思います。
null
割り当てとして数えられないのであれば、それは完璧でしょう。したがって、nullで初期化する場合でも、必ずしもコンストラクターにあるとは限らない、コードの後の最初の割り当てにワイルドカードがあります。
ここに記載されているように、変数を割り当てると、final
その値を変更することはできません。
最終変数は、初期化子または代入ステートメントのいずれかを介して、一度だけ初期化できます。宣言の時点で初期化する必要はありません。これは「空白のfinal」変数と呼ばれます。
特定の時点で不変にすることができる変数が必要な場合、実行できることは次のようになります。
...
private boolean isMutable;
private String someString;
public void setMutable(boolean value)
{
this.isMutable = value;
}
public void setSomeString(String value)
{
if (this.isMutable)
{
this.someString = value;
}
}
...
いいえ、あなたがすることはできません。あなたができることは、メソッドでカプセル化することです:
public boolean setValue(int i)
{
if(isMutable)
{
value = i;
return true;
}
return false;
}
変数が宣言されているときに行う必要があるため、既に宣言されている変数を作成することはできませんfinal
。