Java レコードクラスを使う




小さいときに童謡のレコードを聴いたことがあったような。なかったような。
なんかミニコンポについてたよーな気がしないでもないw

レコードクラスを使うサンプル

レコードクラスを作成。リストに追加します。
追加したリストから、レコード内のデータを出力します。

実行結果

サンプルの解説

classの代わりにrecordを指定すると、レコードクラスが作成できます。
レコードクラスの引数に、フィールド変数を指定します。この例ではkey,valueの2つです。
これがフィールド変数になるので、同じ変数名は指定できません。
また、ふつうのクラスと同じようにメソッド、staticのフィールド変数を追加で書くことができます。

レコードクラスの特徴は、こんな感じ。

  • レコードクラスは、final扱い。abstractは不可。
  • 格納するフィールド変数に応じた、equals,hashcode,toStringメソッドが自動的に作成される。
  • 作成するレコードクラスは、java.lang.Recordが継承される。
  • イミュータブルが強制される。つまり、後から値の変更は不可。

なお、レコードクラスは、Java16より使えますが、LTSを考えると実質Java17以降で使えるって感じですかねー。