1

我写了以下代码

PodamFactory factory = new PodamFactoryImpl();
Honda honda1 = factory.manufacturePojo(Honda.class);
System.out.println(honda1.toString());
Honda honda2 = factory.manufacturePojoWithFullData(Honda.class);
System.out.println(honda2.toString());

这是本田级

public class Honda {

    String name;
    int version;

    public Honda(String name, int version) {
        this.name = name;
        this.version = version;
    }
...
}

我得到

Honda{name='c00iZ2ponC', version=883048266}
Honda{name='c00iZ2ponC', version=883048266}

为什么 podam 每一代都分配相同的值?

4

1 回答 1

1

这是由于所谓的 memoization 造成的,它按类型缓存生成的对象。在某些 PODAM 版本中默认启用此功能。

您可以通过以下方式禁用它

PodamFactory factory = new PodamFactoryImpl();
factory.getStrategy().setMemoizationEnabled(false);
于 2015-08-12T11:49:51.107 回答