0

配列 final を宣言する理由はありますか? このようなことを言う

final int[] array={1,2,33,21,11};
4

4 に答える 4

9

いくつかあるかもしれません。少なくとも、それは

  • 後のコードは、変数「配列」を別の配列に指すことができません
  • 変数「array」は、匿名の内部クラス (リスナーなど) から見ることができます。

重要なのは、「配列」の内容が不変であることを保証するものではありません。

于 2011-07-03T22:33:55.343 に答える
1

「配列」の割り当てを変更できないという不変条件を提供します。(コードを見ると、「配列」は再割り当てされないと想定できます)。ただし、要素の変更を止めるものは何もありません。元。array[2] は 33 から 25 に変更できます。

于 2011-07-03T22:34:34.640 に答える
0

理由は、他の変更可能な型と同じです。参照は、宣言するオブジェクトのライフサイクル全体で同じままであるため、たとえば、自由に配布できます。final変更される可能性のある内容ではなく、常に参照が修正されることについてです。

配列を使用すると、配列のサイズが変わらないという保証さえ得られますが、その保証がどれほど役立つかは、特定のユース ケースによって異なります。

于 2011-07-03T22:36:54.893 に答える
0

できません。配列参照finalのみを宣言できます。これは、配列を不変にすることとは関係ありません。Java では、配列は決して不変ではありません。

于 2011-07-03T23:03:31.070 に答える