Why this matters
Java records provide built-in immutability, reducing the risk of accidental modifications. Avoid manually creating immutable classes when records can be used.
Ensure that Java records are used for immutable data structures instead of manually implementing immutable classes.
Java records provide built-in immutability, reducing the risk of accidental modifications. Avoid manually creating immutable classes when records can be used.
Side-by-side examples engineers can pattern-match during review.
final class Person { // Noncompliant
private final String title;
private final int age;
public Person(String title, int age) {
this.title = title;
this.age = age;
}
public String getName() {...}
public int getAge() {...}
@Override
public boolean equals(Object o) {...}
@Override
public int hashCode() {...}
@Override
public String toString() {...}
}record Person(String title, int age) { }final class Person { // Noncompliant
private final String title;
private final int age;
public Person(String title, int age) {
this.title = title;
this.age = age;
}
public String getName() {...}
public int getAge() {...}
@Override
public boolean equals(Object o) {...}
@Override
public int hashCode() {...}
@Override
public String toString() {...}
}record Person(String title, int age) { }From the same buckets as this rule.