我在代码中创建了一个对象的克隆。
Class<?> oc = o.getClass();
Object preStateInstance = oc.newInstance();
现在我必须输出一个 Java 文件,并且我希望创建的文件具有该克隆实例的分配。像这样的东西:
Object varX = preStateInstance.value;
这可能吗?怎么办?
我想做的是创建测试用例。我想将被测对象的实例保存为预状态值,以便能够比较对象的前后状态。我已经在代码中完成了它,现在我需要将其输出到 JUnit 文件。在处理 JUnit 文件写入的类上,我只能访问 preStateInstance
。
编辑:我想我还没有说清楚。我的 JUnit 编写器要求我传递一个字符串,以便他将其输出到完整的 JUnit 文件。克隆实例后,我必须告诉我的作者如何在其文件中初始化它。
最佳答案
要创建克隆,您必须实现 Cloneable 接口(interface)和克隆方法,该方法创建新对象并复制必要的属性。
但是,对于您的单元测试,我建议使用某种序列化,看看 XStream ( http://x-stream.github.io/ ),它将对象转换为 XML,反之亦然,甚至允许您在中间编辑 XML - 非常适合测试用例恕我直言。
关于java - 代码生成和反射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6744729/