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