Inspectopedia Help

Unnecessary 'final' on local variable or parameter

Reports local variables or parameters unnecessarily declared final.

Some coding standards frown upon variables declared final for reasons of terseness.

Example:

class Foo { Foo(Object o) {} void bar(final Object o) { new Foo(o); } }

After the quick-fix is applied:

class Foo { Foo(Object o) {} void bar(Object o) { new Foo(o); } }

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.

UnnecessaryFinalOnLocalVariableOrParameter
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 | Code style issues

Use the inspection options to toggle the reporting for:

  • local variables

  • parameters (including parameters of catch blocks and enhanced for statements)

Also, you can configure the inspection to only report final parameters of abstract or interface methods, which may be considered extra unnecessary as such markings don't affect the implementation of these methods.

Inspection options

Here you can find the description of settings available for the Unnecessary 'final' on local variable or parameter inspection, and the reference of their default values.

Report local variables

Default: Selected

Report pattern variables

Default: Selected

Report parameters

Default: Selected

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