java - 来自任何枚举的随机值

标签 java random enums

我到处都有 Java 枚举,虽然我看到了各种随机选择枚举的好方法,但感觉应该有一种通用的方法;也就是说,一种从任何提供的枚举中选择随机值的方法。说,

public static <E> E randomMember(Enum<E> enumeration){
...
}

但我想不出一种方法来做到这一点,而且缺乏 Google 搜索结果让我相信这是不可能的(或者我猜这不是一个受欢迎的要求)。

有什么想法吗?

最佳答案

你应该传递 enumclass,而不是 enuminstance 来让它工作:

public static <T extends Enum<T>> T randomMember(Class<T> enumType) {
    T[] constants = enumType.getEnumConstants();
    // Return a random element of constants array
}

...

MyEnum rand = randomMember(MyEnum.class);

关于java - 来自任何枚举的随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9342416/

相关文章:

java - 如何查找某个单词在文本文件的哪一行,如果该单词存在于多行中,则保存行号?

Java随机百分比

java - 使用随机库 Java 进行播种产生相同的结果

c++ - 枚举的 reinterpret_cast 错误

java - Vaadin 字段组将 Enum 与 TextField 等绑定(bind)

Swift 4.2 & 观察枚举值

java - 将 arraylist 排序为相对它是 Java 中的另一个 arraylist

java - 如何将 .java 文件及其 mysql 数据库转换为 .exe

java - 该算法的时间复杂度是多少?

R set.seed() 的范围