Inspectopedia Help

Enhanced 'for' with a record pattern can be used

Reports local variable declarations and accessors to record components that can be replaced with pattern variables in enhanced `for` statements, which are usually more compact.

Example:

record Record(Integer x, String y) { } public static void test(List<Record> records) { for (Record record : records) { System.out.println(record.y()); Integer x = record.x; System.out.println(x); } }

Can be replaced with:

record Record(Integer x, String y) { } public static void test(List<Record> records) { for (Record(Integer x, String y) : records) { System.out.println(y); System.out.println(x); } }
  • Use the Nesting depth limit option to specify the maximum number of nested deconstruction patterns to report

  • Use the Maximum number of record components to deconstruct option to specify the maximum number of components, which a record can contain to be used in deconstruction patterns

  • Use the Maximum number of not-used record components option to specify the maximum number of components, which are not used in for statement

This inspection depends on the Java feature 'Record patterns in for-each loops' which is available since Java X.

New in 2023.1

Inspection options

Here you can find the description of settings available for the Enhanced 'for' with a record pattern can be used inspection, and the reference of their default values.

Nesting depth limit

2

Maximum number of record components to deconstruct

5

Maximum number of not-used record components

0

Inspection Details

By default bundled with:

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin:

Java, 241.14841

Last modified: 12 March 2024