"enum" 필드는 공개되어 있지 않고 불변해야 합니다.

 

enum은 일반적으로 상수로 간주되지만 public 필드로 선언하거나 public setter 가 있는 경우 상수가 아닙니다. enum 필드는 private으로 설정하고 생성자를 통해서만 생성되어야 이상적이지만, 그럴 수 없는 경우 외부에 공개되는 것을 최대한 줄여야 합니다.

규칙을 어긴 코드

public enum Continent {

  NORTH_AMERICA (23, 24709000),
  // ...
  EUROPE (50, 39310000);

  public int countryCount;  // 규칙을 어긴 코드
  private int landMass;

  Continent(int countryCount, int landMass) {
    // ...
  }

  public void setLandMass(int landMass) {  // 규칙을 어긴 코드
    this.landMass = landMass;
  }

규칙을 준수한 해결책

public enum Continent {

  NORTH_AMERICA (23, 24709000),
  // ...
  EUROPE (50, 39310000);

  private int countryCount;
  private int landMass;

  Continent(int countryCount, int landMass) {
    // ...
  }

If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project