How to return enum value in java

I think you should do something like these, an enum class. Then u can add as many types u want and the method yourDecizion() will return the enum type depending on the given parameter.

public enum SomeClass {

        YES(0),
        NO(1),
        OTHER(2);

    private int code;


    private SomeClass(int code) {
        this.code = code;
    }

    public int getCode() {
        return code;
    }

    public static SomeClass yourDecizion(int x) {
        SomeClass ret = null;
        for (SomeClass type : SomeClass.values()) {
            if (type.getCode() == x)
                ret = type;
        }
        return ret;
    }
}

Change your code to:

class SomeClass{
   public enum decizion {
      YES, NO, OTHER
   }

   public static decizion yourDecizion(){
      //scanner etc
      if(x.equals('Y')){
         return decizion.YES;
      }
      else if (x.equals('N')){
         return decizion.NO;
      }
      else{
         return decizion.OTHER;
      }
   }
}

Note: The method return type must be decizion instead of enum and decizion should have an upper case name (as all classes should).


I don't what the "//scanner etc." does, but the methods return type should be decizion:

    public static decizion yourDecizion() { ... }

Furthermore, you can add the Y, N, etc. values to the enum constants:

    public enum decizion{
         YES("Y"), NO("N"), OTHER;
          
         String key;
      
         decizion(String key) { this.key = key; }
     
         //default constructor, used only for the OTHER case, 
         //because OTHER doesn't need a key to be associated with. 
         decizion() { }

         static decizion getValue(String x) {
             if ("Y".equals(x)) { return YES; }
             else if ("N".equals(x)) { return NO; }
             else if (x == null) { return OTHER; }
             else throw new IllegalArgumentException();
         }
    }

Then, in the method, you can just do:

    public static decizion yourDecizion() {
        ...
       String key = ...
       return decizion.getValue(key);
    }

Tags:

Java

Enums

Return