Enum with Customized Value in Java

2020/11/30 Java

Enum with Customized Value in Java

直接上示例代码

public class EnumTest {
    enum TrafficSignal
    {
        // This will call enum constructor with one
        // String argument
        RED("STOP"){
            @Override
            public String policeActionWhenNotFollowingRules() {
                return "fine $50";
            }
        }, GREEN("GO") {
        @Override
        public String policeActionWhenNotFollowingRules() {
            return "N/A";
        }
    }, ORANGE("SLOW DOWN") {
        @Override
        public String policeActionWhenNotFollowingRules() {
            return "Warning";
        }
    };

        // declaring private variable for getting values
        private String action;

        // getter method
        public String getAction()
        {
            return this.action;
        }

        // enum constructor - cannot be public or protected
        private TrafficSignal(String action)
        {
            this.action = action;
        }
        public abstract String policeActionWhenNotFollowingRules();
        public static TrafficSignal getEnum(String value) {
            for(TrafficSignal v : values())
                if(v.getAction().equalsIgnoreCase(value)) return v;
            throw new IllegalArgumentException();
        }
    }
    public static void main(String[] args) {
// let's print name of each enum and there action
        // - Enum values() examples
        TrafficSignal[] signals = TrafficSignal.values();

        for (TrafficSignal signal : signals)
        {
            // use getter method to get the value
            System.out.println("name : " + signal.name() +
                    " action: " + signal.getAction() + " police: " + signal.policeActionWhenNotFollowingRules());
        }
        TrafficSignal.getEnum("SLOW DOWN");
    }
}

Readlist

Search

    Categories Cloud

    Life Linux C/CPP Database Web Benchmarks Software Data Python TCP/IP Financial Stock Bug Golang Rust General Infrastructure TODO Movie Multitenancy Java Ant Algorithm Fastjson Death Build Deploy Education India Aamir Khan Society Female Learning Method OJ Interviewee Interviewer AVL Tree MyBatis Code Reading Design Diary Dating Heap Data Structure Summary Reading Love Claire Mcfall Ferryman Zodiac Astrology Chinese Calculator flink Dubbo docker redis

    Table of Contents