设想
我正在使用在 Eclipse 中从头开始构建的 Java 模型。在这个模型中重要的是我们将输出保存到 MATLAB (.mat) 文件中。我不断添加新功能,这些新功能需要新字段,而这些新字段又必须在每次迭代时导出到 .mat 文件中。重新启动崩溃的模拟后,我可能必须导入 .mat 文件。要导出或导入我的 .mat 文件,我使用JMatIO。
例如,如果我要在我的 CModel 类中添加一个新字段rho_m
(一个简单的double
),我必须添加到我的 Save() 方法中:
mlModel.setField("rho_m", new MLDouble(null, new double[] {rho_m}, 1));
对于我的 Load() 方法:
rho_m = ((MLDouble)mlModel.getField("rho_m")).getReal(0);
请注意,即使rho_m
是 a double
,也需要在 JMatIO 中将其视为 a double[]
。这可能与 MATLAB 面向矩阵和矩阵运算有关。
问题
我不想手动执行此操作(容易出错,维护烦人),我想自动化此过程。理想情况下,我希望我的 IDE 检测 CModel 中的所有字段并根据字段的名称和类型编写代码。有没有办法在 Java/Eclipse 中做到这一点?
到目前为止的想法
我没有接受过低级编程语言的正式培训(是的,Java 对我来说是低级的)并且对 Java 还是比较陌生。我确实有一些使用 MATLAB 的经验。在 MATLAB 中,我认为我可以在 for 循环中使用eval()
andfieldnames()
来执行我提到的操作。我最后的手段是将 Java 代码复制粘贴到 MATLAB 中,然后使用一个巨大而丑陋的脚本从那里生成代码。每次我想对模型进行更改时,我都会重新运行 MATLAB 脚本。
除了这个想法,我还找到了像 UML 这样的术语,但没有背景知识来确定这是否是我正在寻找的东西。
任何帮助,即使只是朝着正确方向的一小步,也将不胜感激。如果我需要进一步澄清任何事情,请告诉我。