一种初始化java类中所有对象的简单方法

时间:2013-09-06 14:38:42

标签: java reflection

我正在尝试为现有服务生成文档。它是一堆休息服务。我想要做的是简单地在xdoclet中创建一个新标签,新标签将有一个参数。

之类的东西
@JSONInputMessage("com.foo.bar.input")
@JSONOutputMessage("com.foo.bar.output")
然后xdoclet将转到该类,初始化它,将其转储到Jackson中以将其转换为json,然后将生成的json复制到javadoc中。

所有这一切都很简单。我的问题是我需要一种方法来接收一个对象,然后一直向下遍历字段,初始化对象,使它们实际显示在json转储中。有没有人有一种简单的方法来反射一个物体并初始化所有物体?

1 个答案:

答案 0 :(得分:1)

Podam使用随机数据初始化java对象树,但您可以定义策略或使用属性来决定所设置的值。

简单示例:

PodamFactory factory = new PodamFactoryImpl(); //This will use the default Random Data Provider Strategy
Pojo myPojo = factory.manufacturePojo(Pojo.class);

或采取策略:

DataProviderStrategy strategy = new MyDataProviderStrategy();
PodamFactory factory = new PodamFactoryImpl(strategy);

Pojo myPojo = factory.manufacturePojo(Pojo.class);

或者使用属性:

@PodamStrategyValue(PostCodeStrategy.class)
private String postCode;

然后为该单个属性定义策略类:

public class PostCodeStrategy implements AttributeStrategy<String> {
    public String getValue() throws PodamMockeryException {
        ...
    }
}

这对你有用吗?