KotlinのvalとJavaでの相当するもの


  1. finalキーワードを使用する方法: Javaでは、変数をfinalキーワードで修飾することで、イミュータブルな変数を宣言することができます。final修飾子を使用すると、変数の値を一度だけ代入することができます。

    final int x = 10;

    上記の例では、変数xに初期値として10を代入しています。その後、xの値を変更することはできません。

  2. ゲッターメソッドを使用する方法: イミュータブルな変数を実現する別の方法は、プライベートな変数を持ち、パブリックなゲッターメソッドを通じてその値にアクセスする方法です。

    private final int x;
    public int getX() {
       return x;
    }
    // コンストラクタなどでxに値を代入する必要があります

    上記の例では、変数xをfinal修飾子で宣言し、ゲッターメソッドgetX()を通じてその値にアクセスできるようにしています。xの値は一度設定された後は変更できません。

  3. 不変クラスを使用する方法: イミュータブルな振る舞いを持つクラスを定義することもできます。このクラスでは、変数の値を変更するメソッドを提供しないようにします。

    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」と同様のイミュータブルな変数を宣言する方法のいくつかです。選択する方法は、使用する文脈や要件によって異なる場合があります。