• 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
    ----------------------

  • 相关阅读:
    Linux命令_2
    Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag.
    壁纸目录
    ubuntu 解决“无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)”的方法
    Oracle VM VirtulBox 安装Ubuntu16.04
    Linux 中文输入法安装
    Android LayoutInflater 相关知识
    Linux命令_1
    青蛙跳杯子
    横向打印二叉树
  • 原文地址:https://www.cnblogs.com/zemliu/p/2915091.html
Copyright © 2020-2023  润新知