可以使用泛型将随机选择的能力放到一个公共库中。
package www.com.cat.chapter01;
import java.util.Random;
public class Enums {
private static Random rand = new Random(13);
public static <T extends Enum<T>> T random(Class<T> enumType) {
return random(enumType.getEnumConstants());
}
public static <T> T random(T[] values) {
return values[rand.nextInt(values.length)];
}
}
这个可以实现随机选择一个枚举实例的功能。
测试一下
package www.com.cat.chapter01;
import java.util.stream.IntStream;
public class RandomTest {
public static void main(String[] args) {
IntStream.rangeClosed(1, 5).mapToObj(x -> Enums.random(Tectosome.class)).forEach(System.out::println);
System.out.println("====================================");
IntStream.rangeClosed(1, 5).mapToObj(x -> Enums.random(Hero.class)).forEach(System.out::println);
}
}
输出 :
LUNA
LUNA
LUXIYA
LUNA
LUNA
====================================
HUANRI:慈悲者
LULA:升格者
HUANRI:慈悲者
LULA:升格者
HUANRI:慈悲者
标签:1.6,random,class,选择,LUNA,static,随机,public,out
From: https://blog.csdn.net/StarPlatinum2/article/details/144865654