An enum type is a type whose variables have predefined values. An enum is special enum declaration class in Java. Using enum type can reduce bugs in our code. Java Enum type is such really nice feature in Java. But there are a few places where we might use an enum type alternative.
Why we should use an enum type alternative ?
- Enum type is introduced in JDK 5. We can not use it before JDK 5.
- All of enum type are subclass of java.lang.Enum.Therefore, enum type can not extend anything else. Multiple inheritance is not supported in Java.
- java.lang.Enum class provides name(), equals(), hashCode(), clone() and compareTo() final methods. So, Any Enum type can not override final methods.
public class EnumTest {
private Day day;
public static class Day {
private int value;
private String name;
public Day(int a,String name) {
this.value = a;
this.name = name;
}
public String name() {
return this.name;
}
public static Day valueOf(String name) {
Day day;
if (name.equals("MON")) {
day = MON;
} else if (name.equals("TUE")) {
day = TUE;
} else if (name.equals("WED")) {
day = WED;
} else if (name.equals("THU")) {
day = THU;
} else if (name.equals("FRI")) {
day = FRI;
} else if (name.equals("SAT")) {
day = SAT;
} else if (name.equals("SUN")) {
day = SUN;
} else {
throw new IllegalArgumentException(name + " is not a constant in Day Class");
}
return day;
}
public static final Day MON = new Day(1,"MON");
public static final Day TUE = new Day(2,"TUE");
public static final Day WED = new Day(1,"WED");
public static final Day THU = new Day(2,"THU");
public static final Day FRI = new Day(1,"FRI");
public static final Day SAT = new Day(2,"SAT");
public static final Day SUN = new Day(1,"SUN");
}
public EnumTest(Day day) {
this.day = day;
System.out.println(this.day.value);
System.out.println(this.day.name());
}
public static void main(String[] args) {
EnumTest enumTest = new EnumTest(Day.MON);
Day friday = Day.valueOf("FRI");
System.out.println(friday.name);
}
}
No comments:
Post a Comment