来自任何枚举的随机值

时间:2012-02-18 15:23:03

标签: java random enums

我到处都有java enums,虽然我已经看到了随机选择的各种好方法,但感觉应该有一种方法可以做到这一点;也就是说,一种从任何提供的枚举中选择随机值的方法。说,

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

然而,我无法找到一种方法来做到这一点,而谷歌搜索结果的缺乏让我相信它是不可能的(或者我认为这不是一个受欢迎的请求)。

有什么想法吗?

1 个答案:

答案 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);