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.


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

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

Inspection Details

By default bundled with:

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin:

Java, 241.16690

Last modified: 29 April 2024