Java getting the Enum name given the Enum Value

前端 未结 5 610
轻奢々
轻奢々 2020-12-15 14:55

How can I get the name of a Java Enum type given its value?

I have the following code which works for a particular Enum type, can I make it more

5条回答
  •  感动是毒
    2020-12-15 15:34

    Here is the below code, it will return the Enum name from Enum value.

    public enum Test {
    
        PLUS("Plus One"), MINUS("MinusTwo"), TIMES("MultiplyByFour"), DIVIDE(
                "DivideByZero");
        private String operationName;
    
        private Test(final String operationName) {
            setOperationName(operationName);
        }
    
        public String getOperationName() {
            return operationName;
        }
    
        public void setOperationName(final String operationName) {
            this.operationName = operationName;
        }
    
        public static Test getOperationName(final String operationName) {
    
            for (Test oprname : Test.values()) {
                if (operationName.equals(oprname.toString())) {
                    return oprname;
                }
            }
            return null;
        }
    
        @Override
        public String toString() {
            return operationName;
        }
    }
    
    public class Main {
        public static void main(String[] args) {
    
            Test test = Test.getOperationName("Plus One");
            switch (test) {
            case PLUS:
                System.out.println("Plus.....");
                break;
            case MINUS:
                System.out.println("Minus.....");
                break;
    
            default:
                System.out.println("Nothing..");
                break;
            }
        }
    }
    

提交回复
热议问题