• Java Enum Part 1


    Enum的简单使用

    package enumtest;
    
    public enum Enum1 {
        MONDAY, SUNDAY;
        
        public static void main(String[] args) {
            for (Enum1 e : Enum1.values()) {
                System.out.println(e);
            }
        }
    }

    输出

    MONDAY
    SUNDAY

    嵌套使用

    package enumtest;
    
    import java.util.Random;
    
    public enum Test {
        /** 注意此处枚举实例的写法
         * 首先枚举实例必须在其他所有方法之前声明
         * 然后是他的语法,如果你有一个 EAT(String) 的枚举实例
         * 则你下面必须也有一个同名的构造方法,例如 Test(String s)
         *  **/
        EAT(Food.Eat.class),
        DRINK(Food.Drink.class);
        
        /** 为了实现枚举的嵌套使用,这里使用接口
         * 注意接口内的枚举必须要实现接口
         * 否则下面的构造方法将无法通过一个方法就获得不同类型的枚举的所有实例
         *  **/
        interface Food {
            enum Eat implements Food { BEEF, PORK, RICE, BREAD };
            enum Drink implements Food { JUICE, WATER, BEER, WINE };
        }
        
        private Random rand = new Random(47);
        private Food[] values;
    
        private Test(Class<? extends Food> kind) {  // 此处必须要有和枚举实例同名的构造方法
            values = kind.getEnumConstants();
        }
        
        private Food randomSelect() {
            return values[rand.nextInt(values.length)];
        }
        
        public static void main(String[] args) {
            // 生成菜单
            for (int i = 0; i < 4; i++) {
                for (Test food : Test.values()) {
                    System.out.println(food.randomSelect());
                }
                System.out.println("----------------------");
            }
        }
    }

    输出

    RICE
    BEER
    ----------------------
    PORK
    WATER
    ----------------------
    RICE
    BEER
    ----------------------
    BEEF
    JUICE
    ----------------------

  • 相关阅读:
    微服务架构设计和应用
    Jenkins持续部署
    Jenkins服务器维护
    Jenkins管理插件(备份插件)
    Jenkins安全
    Jenkins分布式构建
    Jenkins报表 代码 指标分析
    Jenkins远程测试
    Jenkins邮件通知
    Jenkins自动化测试
  • 原文地址:https://www.cnblogs.com/zemliu/p/2915091.html
Copyright © 2020-2023  润新知