我到处都有java enums,虽然我已经看到了随机选择的各种好方法,但感觉应该有一种方法可以做到这一点;也就是说,一种从任何提供的枚举中选择随机值的方法。说,
public static <E> E randomMember(Enum<E> enumeration){
...
}
然而,我无法找到一种方法来做到这一点,而谷歌搜索结果的缺乏让我相信它是不可能的(或者我认为这不是一个受欢迎的请求)。
有什么想法吗?
答案 0 :(得分:4)
您应该通过enum
的类,而不是enum
的实例来实现此目的:
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);