レコードクラスに変換できるクラスを報告します。

レコードクラスは拡張可能な動作ではなく、イミュータブルなデータのモデル化に焦点を当てます。 equals やアクセサーなどのデータ駆動型メソッドを暗黙的に実装すれば、ボイラープレートコードを減らすことができます。

ただし、すべてのクラスをレコードクラスに置換できるわけではありませんので、ご注意ください。 以下に制限事項の一部を掲載しています。

レコードクラスの完全な説明については、「Java 言語仕様」を参照してください。

例:


  class Point {
    private final double x;
    private final double y;

    Point(double x, double y) {
      this.x = x;
      this.y = y;
    }

    double getX() {
      return x;
    }

    double getY() {
      return y;
    }
  }

クイックフィックス適用後:


  record Point(int x, int y) {
  }

アクセサーメソッドの名前変更を提案する」オプションを有効にすると、 getX() / isX() アクセサーの名前を自動的に x() に変更します。

メンバーがよりアクセスしやすくなる場合」オプションを使用すると、変換によりメンバーがよりアクセスしやすくなる場合に何をするのかを指定できます。

指定のパターンに一致するアノテーションがある場合にクラスを変換対象外にするには、「クラスに次のアノテーションがある場合は変換を抑止する」リストを使用してください。

2020.3 の新機能です