-
finalキーワードを使用する方法: Javaでは、変数をfinalキーワードで修飾することで、イミュータブルな変数を宣言することができます。final修飾子を使用すると、変数の値を一度だけ代入することができます。
final int x = 10;
上記の例では、変数xに初期値として10を代入しています。その後、xの値を変更することはできません。
-
ゲッターメソッドを使用する方法: イミュータブルな変数を実現する別の方法は、プライベートな変数を持ち、パブリックなゲッターメソッドを通じてその値にアクセスする方法です。
private final int x; public int getX() { return x; } // コンストラクタなどでxに値を代入する必要があります
上記の例では、変数xをfinal修飾子で宣言し、ゲッターメソッドgetX()を通じてその値にアクセスできるようにしています。xの値は一度設定された後は変更できません。
-
不変クラスを使用する方法: イミュータブルな振る舞いを持つクラスを定義することもできます。このクラスでは、変数の値を変更するメソッドを提供しないようにします。
public final class ImmutableClass { private final int x; public ImmutableClass(int x) { this.x = x; } public int getX() { return x; } }
上記の例では、ImmutableClassという不変クラスを定義しています。クラスのフィールドxはfinal修飾子で宣言され、コンストラクタを介して一度だけ値が設定されます。getX()メソッドを通じてxの値にアクセスできますが、変更することはできません。
これらはJavaでKotlinの「val」と同様のイミュータブルな変数を宣言する方法のいくつかです。選択する方法は、使用する文脈や要件によって異なる場合があります。