首页 > 解决方案 > 是否可以从不同类的枚举中选择随机值?

问题描述

我只是想知道如何从不同类的枚举中选择随机值。例如,我将 Person 和 Victorian 作为类,而这两个类都没有 main 方法。在 Person 类中,有一个枚举 Profession,它代表“医生”、“ceo”、“失业”和“未知”,在 Victorian 类中,我想从这个枚举中选择随机值。是否可以?

标签: java

解决方案


你可以做:

Profession randomValue = 
  Profession.values()[new Random().nextInt(Profession.values().length)];

如果您想更频繁地执行此操作,您应该只初始化 Random 一次:

Random random = new Random();
Profession[] enumValues = Profession.values();
for (int i = 0; i < 100; i++) {
    Profession randomValue = enumValues[random.nextInt(enumValues.length)];
    System.out.println(randomValue);
}

推荐阅读