/** * Picks a random element from the given array. */ public <T> T pickRandom(T[] o) { return pickRandom(Arrays.asList(o)); }
/** * Returns a random value from an enum. * * @param <T> * The enum type. * @param enumClass * The enum class to randomize. * * @return A random enum from the given enum, or null if got null. */ public <T extends Enum<?>> T nextEnum(Class<T> enumClass) { if (enumClass == null) { return null; } return pickRandom(enumClass.getEnumConstants()); }
/** * Randomize a {@code String} made up of the given characters * * @param length * The requested length of the string. */ public String nextString(int length, char[] chars) { Character[] characters = ArrayUtils.toObject(chars); StringBuilder sb = new StringBuilder(length); for (int i = 0; i < length; ++i) { sb.append(pickRandom(characters)); } return sb.toString(); }