final
変数の値が変更されないことを示します。つまり、宣言後に値を変更できない定数です。
次のような を作成する場合に使用public final static String
しますString
。
- クラスに属しています (
static
: それを使用するために必要なインスタンスはありません)。
- 変更されません ( )。たとえば、クラスのすべてのインスタンス、およびクラスを使用する他のオブジェクトで使用できる定数
final
を定義したい場合、およびそのString
- クラスが世界を示すインターフェイスの公開された部分になります。
例:
public final static String MY_CONSTANT = "SomeValue";
// ... in some other code, possibly in another object, use the constant:
if (input.equals(MyClass.MY_CONSTANT)
同様に:
public static final int ERROR_CODE = 127;
を使用する必要はありませんfinal
が、プログラムの実行中に定数が誤って変更されるのを防ぎ、変数が定数であることを示す指標として機能します。
定数が現在のクラスおよび/または 1 つの場所でのみ使用 (読み取り) される場合でも、すべての定数をfinal
次のように宣言することをお勧めします。より明確であり、コードの存続期間中に定数が使用される可能性があります。複数の場所。
さらに、 using を使用final
すると、定数が使用されている実際の値をインライン化するなど、実装で何らかの最適化を実行できる場合があります。
final
最後に、プリミティブ型から真の定数値のみを作成し、不変であることに注意してくださいString
。final
オブジェクト (たとえば a HashMap
) に適用すると、参照は不変になりますが、オブジェクトの状態は変更できません。たとえば、オブジェクトのデータ メンバーを変更したり、配列要素を変更したり、コレクションを操作および変更したりできます。