我到处都有 Java 枚举,虽然我看到了各种随机选择枚举的好方法,但感觉应该有一种通用的方法;也就是说,一种从任何提供的枚举中选择随机值的方法。说,
public static <E> E randomMember(Enum<E> enumeration){
...
}
但我想不出一种方法来做到这一点,而且缺乏 Google 搜索结果让我相信这是不可能的(或者我猜这不是一个受欢迎的要求)。
有什么想法吗?
最佳答案
你应该传递 enum
的 class,而不是 enum
的 instance 来让它工作:
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/