Bootstrap

1.6 随机选择


可以使用泛型将随机选择的能力放到一个公共库中。

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:慈悲者
;