我唯一建议的是缓存结果,
values()因为每个调用都会复制一个数组。另外,不要
Random每次都创建一个。保持一个。除此之外,您在做什么都很好。所以:
public enum Letter { A, B, C, //... private static final List<Letter> VALUES = Collections.unmodifiableList(Arrays.asList(values())); private static final int SIZE = VALUES.size(); private static final Random RANDOM = new Random(); public static Letter randomLetter() { return VALUES.get(RANDOM.nextInt(SIZE)); }}


