MxLDevs
MxLDevs

Reputation: 19506

Accessing static variables using an enum

There exists a class that defines a set of constants as such

public class CritterCode {

    public static String KITTY = "KT";
    public static String PUPPY = "PP";
}

I have created an enum that will be used in a combo box.

public enum Critter {
   KITTY,
   PUPPY
}

Given a Critter, I would like to obtain the corresponding CritterCode.

Is it possible to accomplish this without writing duplicate code?

Upvotes: 2

Views: 104

Answers (3)

Camilo
Camilo

Reputation: 1909

Do it like this,

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

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

  public String getCode() {
    return this.code;
  }
}

this way you can get rid of CritterCode.

Upvotes: 7

JB Nizet
JB Nizet

Reputation: 691685

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;
    }
}

Upvotes: 7

Philipp Sander
Philipp Sander

Reputation: 10249

use enum properties

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

    String critterCode;

    public Critter(String critterCode) {
        this.critterCode = critterCode;
    }

    public String getCritterCode() {
        this.critterCode;
    }
}

Upvotes: 1

Related Questions