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