According to Peter Laurie, IntelliJ does this.
Analysis -> Check Code -> Custom Profile
In the section "Problems with the code style" you can:
The field may be final
This inspection reports any fields which may safely be made final. A static field may be final if it is initialized in its declaration or in one static class initializer, but not both. A non-static field may be final if it is initialized in its declaration or in one non-static class initializer or in all constructors. Powered by InspectionGadgets
A local variable or parameter may be final
This inspection reports parameters or local variables, found in the specified inspection scope, that may have a final modifier added. Use check boxes in the inspection options below, to define whether parameters or local variables (or both) are to be reported.
This will only simplify the final version, which may be safe, but those that you are trying to detect will remain invalid. However, this is a way to detect them.
source share