Clarify when to use final modifier and when not

Change-Id: I096b4f7b61757bdaba4b8045b2d8732e0a8f821d
This commit is contained in:
David Ostrovsky
2014-11-18 23:27:59 +01:00
committed by David Pursehouse
parent d26e43f22f
commit 8e65434803

View File

@@ -173,6 +173,26 @@ examples:
* Put a blank line between external import sources, but not
between internal ones.
When to use `final` modifier and when not (in new code):
Always:
* final fields: marking fields as final forces them to be
initialised in the constructor or at declaration
* final static fields: clearly communicates the intent
* to use final variables in inner anonymous classes
Optional:
* final classes: use when appropriate, e.g. API restriction
* final methods: similar to final classes
Never:
* local variables: it clutters the code, and make the code less
readable. When copying old code to new location, finals should
be removed
* method parameters: similar to local variables
== Code Organization