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:

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.