Monday, March 28, 2011

Java Enums

Simple enum
The ; after the last element is optional, when this is the end of enum definition.

public enum Color {
WHITE, BLACK, RED, YELLOW, BLUE; //; is optional
}

Simple enum embedded inside a class

public class Outter {
public enum Color {
WHITE, BLACK, RED, YELLOW, BLUE
}
}
Outside the enclosing class, elements are referenced as Outter.Color.RED, Outter.Color.BLUE, etc.

Enum that overrides toString method

A semicolon after the last element is required to be able to compile it. More details on overriding enum toString method can be found here.

public enum Color {
WHITE, BLACK, RED, YELLOW, BLUE; //; is required here.

@Override public String toString() {
String prev = super.toString();
return prev.substring(0, 1) + prev.substring(1).toLowerCase();
}
}

Enum with additional fields and custom constructor

Enum constructors must be either private or package default, and protected or public access modifier is not allowed. When custom constructor is declared, all elements declaration must match that constructor.

public enum Color {
WHITE(21), BLACK(22), RED(23), YELLOW(24), BLUE(25);

private int code;

private Color(int c) {
code = c;
}

public int getCode() {
return code;
}

No comments:

Post a Comment