Eclipse代码生成器生成映射器类。

5
我正在尝试使用Eclipse编写代码生成器,以在任意两个类之间进行映射。想法是提供一个向导,用户选择需要映射属性的两个类。然后显示所有可能的匹配项,如果用户确认无误,则创建一个ClassMapper类,其中只有一个map方法,该方法将执行所需的Class1.setXXX(Class2.getXXX())操作。
对于如何实现此功能,您有什么建议吗?
谢谢。

你确定像Dozer(http://dozer.sourceforge.net/)这样的bean映射框架对你不起作用吗? - Daff
有趣的是,我本来想写一个Swing程序来完成这个任务的,因为我没有找到任何Eclipse插件。天啊,你不知道要设置多少次才能得到那个东西。打字太多了。但是后来我停下来了,因为这不值得麻烦。如果你找到了一个插件,请告诉我。 - sethu
Dozer似乎可以满足我们的需求。但它只能从一个类静态映射到另一个类。如果您需要在多个类之间映射变量,则需要编写/生成代码。 - sethu
正如@sethu所提到的,我们需要它用于静态映射。一旦我找到它,我会让你知道。 - user667022
1个回答

2

您要做的事情提供了与Dozer类似的功能,但静态代码具有优势,它更快,仅包含代码中的逻辑,并且可以通过IDE中的调用层次结构更容易地查找字段使用。

通常,Eclipse插件是开始的最佳方式,因为您只能投影GUI,显示由Eclipse本身完成,并且您还可以访问其出色的工具以处理Java代码。

然而,我认为较差的部分将是配置部分。 Dozer具有原始映射器(在将基元和本机Java类型之间进行转换的方式上是原始的;),它处理大多数标准类型之间的典型转换,但通常需要进行配置。例如,表示布尔值的字符串可以是“t”和“f”,也可以是“true”和“false”或“1”和“0”,或者其他语言的单词。日期可以有各种格式等。因此,您将需要通过定义自己的代码片段来处理特定转换的方式,在此插件中配置各种映射器。

但是,如果您这样做,您将受到极大的赞赏。 最近,我正在寻找一些东西,它可以做更多的事情,我的意思是它既可以创建映射,又可以创建匹配代码的dto,同时具有合并类层次结构的可能性,当对象子类型由各种类表示时,可以将其表示为单个类,更适用于JSON传输,但没有结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接