org.sonar.l10n.java.rules.squid.S3066.html Maven / Gradle / Ivy
enum
s are generally thought of as constant, but an enum
with a public
field or public
setter is not only non-constant, but also vulnerable to malicious code. 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
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
public enum Continent {
NORTH_AMERICA (23, 24709000),
// ...
EUROPE (50, 39310000);
private int countryCount;
private int landMass;
Continent(int countryCount, int landMass) {
// ...
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy