java - 代码生成和反射

标签 java code-generation

我在代码中创建了一个对象的克隆。

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/

相关文章:

java - Springframework中Elasticsearch属性的相似性

java - 有没有办法在不使用相机方法的情况下在 Android 中使用手电筒?

java - 从文件路径设置 ImageView 的图像。 BitmapFactory.decodeFile、BitmapFactory.decodeStream 还是 Drawable.fromFile?

c# - 生成许多​​与 float (System.Single) 具有相同功能的结构类型

c# - 从 C# 生成 JavaScript 的好的架构是什么?

Matlab Codgen eig() 函数 - 奇怪的行为

java - Nuxeo 使用 REST 使用新版本创建和更新文件

java - 将任意参数的数组传递给通过反射调用的方法

c# - 使用基于文本文件的事件创建 C# 表单字段

java - 使用多个 AnntationProcessor 找不到 FluentFuture 类