寻找 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
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