寻找 RandomStringUtils 的简洁替代品

Looking for concise alternative for RandomStringUtils

This question is obsolete. org.apache.commons:commmons-lang3:3.7 removed the deprecated flag, and 3.8 confirmed that.

3.5 更新到 org.apache.commons:commons-lang3:3.6 后,我收到许多关于 RandomStringUtils 被弃用的警告。建议的替代方案是 commons-text 中的 RandomStringGenerator。但是,如果您只需要一个字符串(例如,在单元测试中),那么 class 使用起来非常笨拙。比较:

String name1 = RandomStringUtils.randomAlphabetic(FIRST_NAME_LENGTH);
String name2 = new RandomStringGenerator.Builder().withinRange('a', 'z').build()
        .generate(FIRST_NAME_LENGTH);

(我知道这甚至不是相同的语义,但我想保持简短。)

所以我正在寻找一种简短而优雅的方式,最好是直接替代; Java 8、Spring、Guava 甚至测试专用库都欢迎。

我会考虑使用 Facade pattern 来包裹 RandomStringGenerator class 的 "clumsiness"。

示例

public class RandomStringUtilsFacade
{
    public static String randomAlphabetic (final int firstNameLength)
    {
        return randomAlphabetic(firstNameLength, 'a', 'z');
    }

    // If you want to use the range
    public static String randomAlphabetic (final int firstNameLength, 
                                           final char low, final char high)
    {
        return new RandomStringGenerator.Builder().withinRange(low, high).build()
        .generate(firstNameLength);
    }
}
return org.apache.commons.lang3.RandomStringUtils.random(24, "abcdefghijklmnopqrstuvwxyz0123456789");

这个str怎么样@Michael Markidis