建议用记录替换类。

当您需要专注于建模不可变数据而不是可扩展行为时,检查会很有用。 数据驱动方法的自动实现,例如 equals 和访问器,有助于消除样板。

请注意,不是每个类都可以成为记录。 以下是一些限制:

要获取完整的限制列表,请参阅 Oracle 文档

示例:


  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) {
  }

仅当项目或模块的语言级别为 14 预览或更高时才报告此检查。

2020.3 的新功能