Inspectopedia
 
2024.3

Record can be converted to class

Info
New
Last modified: 03 December 2024

Reports record classes and suggests converting them to ordinary classes.

This inspection makes it possible to move a Java record to a codebase using an earlier Java version by applying the quick-fix to this record.

Note that the resulting class is not completely equivalent to the original record:

  • The resulting class no longer extends java.lang.Record, so instanceof Record returns false.

  • Reflection methods like Class.isRecord() and Class.getRecordComponents() produce different results.

  • The generated hashCode() implementation may produce a different result because the formula to calculate record hashCode is deliberately not specified.

  • Record serialization mechanism differs from that of an ordinary class. Refer to Java Object Serialization Specification for details.

Example:

After the quick-fix is applied:

This inspection depends on the Java feature 'Records', which is available since Java 16.

New in 2020.3