| The presence of an unused variable may indicate a bug. This check highlights | |
| private fields, and parameters of private methods, which are unused and can be | |
| safely removed without considering the impact on other source files. "Private" | |
| in this context also includes effectively-private members, like public members | |
| of private classes. | |
| ## Suppression | |
| False positives on fields and parameters can be suppressed by prefixing the | |
| variable name with `unused`, e.g.: | |
| ```java | |
| private static void authenticate(User user, Application unusedApplication) { | |
| checkState(user.isAuthenticated()); | |
| } | |
| ``` | |
| Fields which are used by reflection can be annotated with `@Keep` to suppress | |
| the warning. | |
| This annotation can also be applied to annotations, to suppress the warning for | |
| any member annotated with that annotation: | |
| ```java | |
| import com.google.errorprone.annotations.Keep; | |
| @Keep | |
| @Retention(RetentionPolicy.RUNTIME) | |
| @interface Field {} | |
| ... | |
| public class Data { | |
| @Field private int a; // no warning. | |
| ... | |
| } | |
| ``` | |
| All false positives can be suppressed by annotating the variable with | |
| `@SuppressWarnings("unused")`. |