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); } }

Locating this inspection

By ID

Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.

ForEachWithRecordPatternCanBeUsed
Via Settings dialog

Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.

Settings or Preferences | Editor | Inspections | Java | Java language level migration aids

  • 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

Availability

By default bundled with

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin

Java, 241.18072

Last modified: 18 June 2024