Failing to explicitly declare the visibility of a member variable could result it in having a visibility you don’t expect, and potentially leave it open to unexpected modification by other classes.
class Ball { String color="red"; // Noncompliant } enum A { B; int a; }
class Ball { private String color="red"; // Compliant } enum A { B; private int a; }
Members annotated with @VisibleForTesting
annotation are ignored, as it indicates that visibility has been purposely relaxed to make
the code testable.
class Cone { @VisibleForTesting Logger logger; // Compliant }
This rule is deprecated, and will eventually be removed.