Enum
revisar
ejemplos
simple
public enum UserStatus { PENDING, ACTIVE, INACTIVE, DELETED; }
System.out.println(UserStatus.ACTIVE); //ACTIVE
simple + campo
public enum WhoisRIR {
ARIN("whois.arin.net"),
RIPE("whois.ripe.net"),
APNIC("whois.apnic.net"),
AFRINIC("whois.afrinic.net"),
LACNIC("whois.lacnic.net"),
JPNIC("whois.nic.ad.jp"),
KRNIC("whois.nic.or.kr"),
CNNIC("ipwhois.cnnic.cn"),
UNKNOWN("");
private String url;
WhoisRIR(String url) {
this.url = url;
}
public String url() {
return url;
}
}
System.out.println(WhoisRIR.ARIN.url()); //whois.arin.net
simple + campo + lógica
public enum Operation {
PLUS,
MINUS,
TIMES,
DIVIDE;
double calculate(double x, double y) {
switch (this) {
case PLUS:
return x + y;
case MINUS:
return x - y;
case TIMES:
return x * y;
case DIVIDE:
return x / y;
default:
throw new AssertionError("Unknown operations " + this);
}
}
}
double result = Operation.PLUS.calculate(1, 2); System.out.println(result); //3.0
bucle
for (UserStatus status : UserStatus.values()) { System.out.println(status); }
PENDING ACTIVE INACTIVE DELETED
comparación
WhoisRIR rir = WhoisRIR.APNIC; if(rir == WhoisRIR.APNIC) { System.out.println("This is APNIC : " + rir.url()); //This is APNIC : whois.apnic.net }
comparacion 2
public class Test {
public static void main(String[] args) {
WhoisRIR rir = WhoisRIR.RIPE;
switch (rir) {
case ARIN:
System.out.println("This is ARIN");
break;
case APNIC:
System.out.println("This is APNIC");
break;
case RIPE:
System.out.println("This is RIPE"); // This is RIPE
break;
default:
throw new AssertionError("Unknown RIR " + rir);
}
}
}
string to enum
//enum valueOf + uppercase Operation op = Operation.valueOf("times".toUpperCase()); System.out.println(op.calculate(10, 3)); // 30.0
// Recommended Solution : add locale WhoisRIR rir = WhoisRIR.valueOf("ripe".toUpperCase(Locale.ENGLISH)); System.out.println(rir); //RIPE System.out.println(rir.url()); //whois.ripe.net