Java 来自多个软件包的推土机通用映射(通配符?)

Java 来自多个软件包的推土机通用映射(通配符?),java,properties,dozer,Java,Properties,Dozer,我可以为存在于多个包中的类编写转换器吗?例如,我有存在于com.package.a.1、com.package.a.2等中的ClassA。ClassB存在于com.package.b.1、com.package.b.2等中。ClassA和ClassB的每个副本都有相同的定义 我试过这样的方法,但没有成功 <converter type="com.package.MyConverter"> <class-a>com.package.a.*.ClassA</cla

我可以为存在于多个包中的类编写转换器吗?例如,我有存在于com.package.a.1、com.package.a.2等中的ClassA。ClassB存在于com.package.b.1、com.package.b.2等中。ClassA和ClassB的每个副本都有相同的定义

我试过这样的方法,但没有成功

<converter type="com.package.MyConverter">
   <class-a>com.package.a.*.ClassA</class-a>
   <class-b>com.package.b.*.ClassB</class-b>
</converter>

com.package.a.*.ClassA
com.package.b.*.ClassB

我想你做不到。如果从代码的角度考虑它,它将如何知道将对象转换成什么对象?但是,您可以重新使用转换器。e、 g

<converter type="com.package.MyConverter">
  <class-a>com.package.a.p1.ClassA</class-a>
  <class-b>com.package.b.p1.ClassB</class-b>
</converter>
<converter type="com.package.MyConverter">
  <class-a>com.package.a.p2.ClassA</class-a>
  <class-b>com.package.b.p2.ClassB</class-b>
</converter>

com.package.a.p1.ClassA
com.package.b.p1.ClassB
com.package.a.p2.ClassA
com.package.b.p2.ClassB
我唯一能想到的另一种可能性是,如果属性都具有相同的名称,则不需要指定转换器,也不需要在映射中列出它们,Dozer只会自动转换所有具有相同名称的属性


(我所说的可能是错误的,但这是我在使用推土机的经验中处理的问题)

您可以为所有类使用一个接口,您希望通过自定义的
com.package.MyConverter
映射器映射这些类。因此,您只需定义一次映射:

<converter type="com.package.MyConverter">
   <class-a>com.package.IMyConverterMappable</class-a>
   <class-b>com.package.IMyConverterMappable</class-b>
</converter>

com.package.IMyConverterMappable
com.package.IMyConverterMappable