Back to Intellij Community

MeaninglessRecordAnnotationInspection

java/java-impl/resources/inspectionDescriptions/MeaninglessRecordAnnotationInspection.html

2025.3-rc-2576 B
Original Source

Reports annotations used on record components that have no effect.

This can happen in two cases:

  • The reported annotation has the METHOD target, but the corresponding accessor is explicitly defined.
  • The reported annotation has the PARAMETER target, but the canonical constructor is explicitly defined.

Example:

@Target(ElementType.METHOD)
@interface A { }

// The annotation will not appear in bytecode at all,
// as it should be propagated to the accessor but accessor is explicitly defined 
record R(@A int x) {
  public int x() { return x; }
}

New in 2021.1