我写了下面的代码

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每一代都分配相同的值?

最佳答案

发生这种情况的原因是所谓的备忘录,它会按类型缓存生成的对象。在某些PODAM版本中,默认情况下启用了此功能。

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

PodamFactory factory = new PodamFactoryImpl();
factory.getStrategy().setMemoizationEnabled(false);

09-30 00:04