| A field which is always assigned before being used from every method that reads | |
| it may be better expressed as a local variable. Using a field in such cases | |
| gives the impression of mutable state in the class where it isn't necessary. | |
| ```java | |
| class Frobnicator { | |
| private int sum = 0; | |
| int sum(int a, int b) { | |
| sum = a + b; | |
| return sum; | |
| } | |
| int sum(int a, int b, int c) { | |
| sum = a + b + c; | |
| return sum; | |
| } | |
| ``` | |
| ```java | |
| class Frobnicator { | |
| int sum(int a, int b) { | |
| int sum = a + b; | |
| return sum; | |
| } | |
| int sum(int a, int b, int c) { | |
| int sum = a + b + c; | |
| return sum; | |
| } | |
| ``` | |
| ## Suppression | |
| This check is suppressed by `@SuppressWarnings("FieldCanBeLocal")`. | |
| It will also be suppressed if the field is annotated with `@Keep` or an | |
| annotation annotated with `@Keep`. |