将javabean初始化为随机值的方法

Per*_*ium 4 java random javabeans

我正在寻找一些实用程序类/代码,它将采用java bean并将其所有值初始化为随机值.它可以通过反射来完成,因为一些库已经创建了toString()或equals()方法.在开发UI以获得一些数据时很有用.

其他可能的好处:

  1. 递归初始化非原始或简单(字符串,日期)成员
  2. 初始化一组bean
  3. 也许给出一些方法来限制生成的值,例如我们可以为字符串regexps或通配符提供范围的数字...

有人知道这样的事吗?谢谢

编辑:解决... Apocalisp的样本正在工作,最终正是我所寻找的.它有一些缺点恕我直言:

  • 该库的范围比使用范围大得多,但对我来说这不是问题
  • 除非你花一些时间研究整个事物,否则理解如何为你的对象建立任意对象是相当复杂的.这是一个缺点.
  • 而且我猜这可能更有吸引力,但这也很好.

谢谢!

Mah*_*ine 5

看看随机豆:

https://github.com/benas/random-beans

它允许您使用随机数据填充Java对象图.

希望能帮助到你

亲切的问候


Apo*_*isp 1

看一下Reductio 库中的 Gen 类。这是一个高度可配置的框架的一部分,用于生成或多或少任何类型的任意值。提供了基本类型和大多数 Java 集合类的生成器。您应该能够Arbitrary相当轻松地为您的类创建实例。

编辑这是示例,已更正:

import static fj.test.Arbitrary.*;
import static fj.Function.*;

static final Arbitrary<Person> personArbitrary =
  arbitrary(arbInteger.gen.bind(arbString.gen, arbBoolean.gen,
      curry(new F3<Integer, String, Boolean, Person>() {
        public Person f(final Integer age, final String name, final Boolean male)
          {return new Person(age, name, male);}})));
Run Code Online (Sandbox Code Playgroud)

然后像这样生成一个“size 100”的任意 Person。即它的名称最多为 100 个字符。

Person p = personArbitrary.gen.gen(100, Rand.standard);
Run Code Online (Sandbox Code Playgroud)