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

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

Option

Type

Default

Report local variables

Checkbox

true

Report pattern variables

Checkbox

true

Report parameters

Checkbox

true

Only warn on abstract or interface methods

Checkbox

false

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Java, 233.SNAPSHOT

Last modified: 13 July 2023