Madrugada
Madrugada

Reputation: 1289

Java enum: get FieldName knowing its value

public enum Code {

    E1330("MERCOSUR (SOUTH AMERICAN COMMON MARKET)"),
    E0257("Guinea Biss."),
    E0252("Gambia");

private Code(String value){
   setStringValue(value);
}   
private Code (int value) {
    setIntValue(value);
}

private int intValue;
private String stringValue;

public String getStringValue() {
    return stringValue;
}
public int getIntValue() {
    return intValue;
}

public void setStringValue(String value) {
    this.stringValue = value;
}
public void setIntValue(int value) {
    this.intValue = value;
}
}

How can I get the field name of the Code whose value is "Gambia"? -> it would be E0252

Thank you

Upvotes: 1

Views: 602

Answers (1)

arshajii
arshajii

Reputation: 129497

You can search for it via a loop:

String val = "Gambia";
String field = "";

for (Code c : Code.values())
    if (c.getStringValue().equals(val)) {
        field = c.name();
        break;
    }

System.out.println(field);

Output:

E0252

Upvotes: 4

Related Questions