Inspectopedia Help

Meaningless record annotation

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

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Java, 233.SNAPSHOT

Last modified: 13 July 2023