Good examples of Java enum
I hope you already had read much about enum on various sites and books. Ad you must be aware with how to use enum, where to use, its syntax etc etc.
Here, I am giving just examples on enum (collected from many sites.). So it can improve your understanding in enum.
ApplicationStatus
public class ApplicationStatus {
public static enum APP_STATUS{
ALL_GOOD(1, "All things are going good"),
WARNING(2, "SOMETHING IS BAD"),
ERROR(3, "Its an Error"),
FATAL(4, "Its crashed");
private String statusMessage;
private int statusId;
private APP_STATUS(int statusId, String statusMessage){
this.statusId = statusId;
this.statusMessage = statusMessage;
}
public int getStatusId(){
return statusId;
}
public String getStatusMessage(){
return statusMessage;
}
public boolean isAttentionRequired(){
if(statusId<3)
return false;
else
return true;
}
}
public void handleAppStatusChange(APP_STATUS newStatus){
if(newStatus.isAttentionRequired()){
//notify admin
System.out.println("Some problem with application. Application is in " + newStatus + " status.");
}
//Log newStatus.getStatusId() in the logfile
//display newStatus.getStatusMessage() to the App Dash-Board
}
public static void main(String[] args) {
ApplicationStatus app = new ApplicationStatus();
app.handleAppStatusChange(APP_STATUS.ALL_GOOD);
app.handleAppStatusChange(APP_STATUS.WARNING);
app.handleAppStatusChange(APP_STATUS.FATAL);
}
}
CommonLanguage
public class CommonLanguage {
enum Lang {ENGLISH, FRENCH, URDU, JAPANESE}
/** Find the languages in common between two people. */
public static void main(String... aArgs){
EnumSet<Lang> ariane = EnumSet.of(Lang.FRENCH, Lang.ENGLISH);
EnumSet<Lang> noriaki = EnumSet.of(Lang.JAPANESE, Lang.ENGLISH);
log( "Languages in common: " + commonLangsFor(ariane, noriaki) );
}
private static Set<Lang> commonLangsFor(Set<Lang> aThisSet, Set<Lang> aThatSet){
Set<Lang> result = new LinkedHashSet<Lang>();
for(Lang lang: aThisSet){
if( aThatSet.contains(lang) ) {
result.add(lang);
}
}
return result;
}
private static void log(Object aMessage){
System.out.println(String.valueOf(aMessage));
}
}
Error
public enum Error {
DATABASE(0, "A database error has occured."),
DUPLICATE_USER(1, "This user already exists.");
private final int code;
private final String description;
private Error(int code, String description) {
this.code = code;
this.description = description;
}
public String getDescription() {
return description;
}
public int getCode() {
return code;
}
@Override
public String toString() {
return code + ": " + description;
}
}
Heat
public class Heat {
enumConstr size;
public static void main(String[] args) {
Heat constr = new Heat();
constr.size = enumConstr.BIG;
Heat constr1 = new Heat();
constr1.size = enumConstr.OVERWHELMING;
System.out.println(constr.size.getOunces());//8
System.out.println(constr1.size.getOunces());//16
System.out.println(constr.size.getName());//PONDS
System.out.println(constr1.size.getName());//null
}
enum enumConstr {
HUGE(10), OVERWHELMING(16), BIG(10,"PONDS");//(;)Compulsory
int ounces; String name;
enumConstr(int ounces){ this.ounces = ounces; }
enumConstr(int ounces,String name){
this.ounces = ounces;
this.name = name;
}
public int getOunces(){ return ounces; }
public String getName(){ return name; }
}
}
Terrain
public enum Terrain {
NONE(""),
WALL("Wall") {
@Override public boolean preventsMovement() {
return true;
}
@Override public boolean blocksLineOfSight() {
return true;
}
},
PIT("Pit") {
@Override public boolean preventsMovement() {
return true;
}
},
FOG("Fog") {
@Override public boolean blocksLineOfSight() {
return true;
}
};
private String displayName;
private Terrain(String displayName) {
this.displayName = displayName;
}
public String getDisplayName() {
return displayName;
}
public boolean preventsMovement() {
return false;
}
public boolean blocksLineOfSight() {
return false;
}
}
WeekDays
public class WeekDays {
private enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
Day day;
public WeekDays(Day day) {
this.day = day;
}
public void tellItLikeItIs() {
switch (day) {
case MONDAY: System.out.println("Mondays are bad.");
break;
case FRIDAY: System.out.println("Fridays are better.");
break;
case SATURDAY:
case SUNDAY: System.out.println("Weekends are best.");
break;
default: System.out.println("Midweek days are so-so.");
break;
}
}
public static void main(String[] args) {
WeekDays firstDay = new WeekDays(Day.MONDAY);
firstDay.tellItLikeItIs();
WeekDays thirdDay = new WeekDays(Day.WEDNESDAY);
thirdDay.tellItLikeItIs();
WeekDays fifthDay = new WeekDays(Day.FRIDAY);
fifthDay.tellItLikeItIs();
}
}
Color
public enum Color {
RED(625, 740),
ORANGE(590, 625),
YELLOW(565, 590),
...
//Electro-magnetic Spectrum wavelength in nm
int startWavelength;
int endWavelength;
Color(start, end) {
this.startWavelength = start;
this.endWavelength = end;
}
public int getStartWavelength() { return startWavelength; }
public int getEndWavelength() { return endWavelength; }
public static void main(String[] args) {
System.out.println("Red color's wavelength range, "
+ RED.getStartWavelength()+" ~ "+RED.getEndWavelength());
}
}
86
views
views


No Comments