== Why is this an issue? ``++enum++``s are generally thought of as constant, but an ``++enum++`` with a ``++public++`` field or ``++public++`` setter is non-constant. Ideally fields in an ``++enum++`` are ``++private++`` and set in the constructor, but if that's not possible, their visibility should be reduced as much as possible. === Noncompliant code example [source,java] ---- public enum Continent { NORTH_AMERICA (23, 24709000), // ... EUROPE (50, 39310000); public int countryCount; // Noncompliant private int landMass; Continent(int countryCount, int landMass) { // ... } public void setLandMass(int landMass) { // Noncompliant this.landMass = landMass; } ---- === Compliant solution [source,java] ---- public enum Continent { NORTH_AMERICA (23, 24709000), // ... EUROPE (50, 39310000); private int countryCount; private int landMass; Continent(int countryCount, int landMass) { // ... } ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message * Lower the visibility of this setter or remove it altogether. * Lower the visibility of this field. ''' == Comments And Links (visible only on this page) === on 16 Jun 2015, 13:18:04 Nicolas Peru wrote: Looks good endif::env-github,rspecator-view[]