Record classes focus on modeling immutable data rather than extensible behavior.
Automatic implicit implementation of data-driven methods, such as equals()
and accessors, helps to reduce boilerplate code.
Note that not every class can be a record class. Here are some of the restrictions:
For a full description of record classes, refer to the Java Language Specification.
Example:
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;
}
}
After the quick-fix is applied:
record Point(int x, int y) {
}
Enable the Suggest renaming accessor methods option to rename getX()
/isX()
accessors to x()
automatically.
Use the If members become more accessible option to specify what to do when conversion will make members more accessible:
Use the Suppress conversion if class is annotated by list to exclude classes from conversion when annotated by annotations matching the specified patterns.
New in 2020.3