美文网首页
枚举嵌套

枚举嵌套

作者: 阿南的生活记录 | 来源:发表于2018-06-05 16:48 被阅读0次
package com.example.testenum;

import java.util.Random;

/**
 * Created by admin on 2018/6/5.
 * 通过这种方式很方便组织上述情景,同时确保每种具体类型的食物也属于Food
 * ,现在我们利用一个枚举嵌套枚举的方式把前面定义的菜谱放到一个Meal菜单中,
 * 通过这种方式就可以同意管理菜单的数据了。
 */
public enum MealEnum {
    APPETIZER(Food.Appetizer.class),
    MAINCOURSE(Food.MainCourse.class),
    DESSERT(Food.Dessert.class),
    COFFEE(Food.Coffee.class);

    private Food[] values;

    MealEnum(Class<? extends Food> kind){
        //通过class对象获取枚举实例
        values = kind.getEnumConstants();
        System.out.println("values:"+values.getClass().getSimpleName());
    }

    interface Food {
        enum Appetizer implements Food {
            SALAD, SOUP, SPRING_ROLLS;
        }
        enum MainCourse implements Food {
            LASAGNE, BURRITO, PAD_THAI,
            LENTILS, HUMMOUS, VINDALOO;
        }
        enum Dessert implements Food {
            TIRAMISU, GELATO, BLACK_FOREST_CAKE,
            FRUIT, CREME_CARAMEL;
        }
        enum Coffee implements Food {
            BLACK_COFFEE, DECAF_COFFEE, ESPRESSO,
            LATTE, CAPPUCCINO, TEA, HERB_TEA;
        }
    }


    public Food randomSelection() {
        return Enums.random(values);
    }



    public static void main(String[] args) {

        for (int i = 0; i < 5; i++) {
            for (MealEnum meal : MealEnum.values()) {
                Food food = meal.randomSelection();
                System.out.println(food);
            }
            System.out.println("---");

        }
    }
}

/**
 * Created by admin on 2018/6/5.
 */
public class Enums {

    private static Random rand = new Random(47);
    public static <T> T random(T[] values){
        return values[rand.nextInt(values.length)];
    }
}

相关文章

  • 枚举嵌套

  • handyJson使用简介

    //支持嵌套数组,枚举 import UIKit import HandyJSON //枚举 enum Grade...

  • 枚举、随机数、嵌套类

    枚举、随机数 嵌套类 局部类

  • Swift学习笔记十五之嵌套类型

    1、类型嵌套//可以在允许类型嵌套的类型中嵌套枚举、类、结构体,并且支持多层嵌套2、值类型的嵌套struct Ne...

  • 第二十章 嵌套类型

    struct BlackjackCard { // 嵌套的 Suit 枚举 enum Suit: Chara...

  • Swift 5.1 (18) - 嵌套类型

    Swift允许定义嵌套类型,在它们所支持类型的定义中支持嵌套枚举,类和结构。类型可以嵌套到所需的级别。 嵌套类型使...

  • 常见的类

    嵌套类 内部类 枚举类 密封类 数据类 单例模式 伴生对象 嵌套类 嵌套类是嵌套在其它类中的类 不能访问外部类的成...

  • Kotlin 进阶之路5 类的使用

    Kotlin 进阶之路 目录 1.嵌套类 2.数据类 3.枚举类

  • 20、【Swift】扩展 - Extensions

    适用:结构体、枚举、枚举、协议 使用场景增加计算属性(实例和类)【不能扩充存储属性】方法(实例或)构造器下标嵌套类...

  • swift嵌套类型

    swift允许在一个类型中嵌套定义另一个类型,即嵌套类型。可以在枚举类型、类和结构体中定义支持嵌套的类型,可以定义...

网友评论

      本文标题:枚举嵌套

      本文链接:https://www.haomeiwen.com/subject/vahmsftx.html