寻找RandomStringUtils的简洁替代方案

时间:2017-06-26 15:45:28

标签: java apache-commons

  

这个问题已经过时了。 org.apache.commons:commmons-lang3:3.7删除了已弃用的标记,3.8确认了。

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

commons-text

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

所以我正在寻找一种简短而优雅的方式,理想情况下是直接替换; Java 8,Spring,Guava甚至只测试库都是受欢迎的。

2 个答案:

答案 0 :(得分:3)

我会考虑使用Facade pattern来包裹RandomStringGenerator类的“笨拙”。

示例

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);
    }
}

答案 1 :(得分:0)

return org.apache.commons.lang3.RandomStringUtils.random(24, "abcdefghijklmnopqrstuvwxyz0123456789");

这个str @Michael Markidis怎么样