レコードクラスは拡張可能な動作ではなく、イミュータブルなデータのモデル化に焦点を当てます。 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 の新機能です