使用枚举访问静态变量

MxL*_*evs 2 java enums

存在一个定义一组常量的类

public class CritterCode {

    public static String KITTY = "KT";
    public static String PUPPY = "PP";
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个将在组合框中使用的枚举.

public enum Critter {
   KITTY,
   PUPPY
}
Run Code Online (Sandbox Code Playgroud)

鉴于Critter,我想获得相应的CritterCode.

是否可以在不编写重复代码的情况下完成此操作?

Cam*_*ilo 7

像这样做,

public enum Critter {
  KITTY("KT"),
  PUPPY("PP");

  private String code;
  Critter(String code) {
      this.code = code;
  }

  public String getCode() {
    return this.code;
  }
}
Run Code Online (Sandbox Code Playgroud)

这样你就可以摆脱CritterCode.


JB *_*zet 7

public enum Critter {
    KITTY(CritterCode.KITTY),
    PUPPY(CritterCode.PUPPY)

    private final String code;

    private Critter(String code) {
        this.code = code;
    }

    public String getCode() {
        return code;
    }
}
Run Code Online (Sandbox Code Playgroud)