| 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")`. |