java - 如何在运行时在 Dozer 中查找属性映射?

标签 java mapping dozer

我用 Dozer在 Java bean 之间进行映射。我有一个推土机映射文件,其中包含所有映射。示例映射如下所示:

<mapping>
    <class-a>com.xyz.A</class-a>
    <class-b>com.xyz.B</class-b>
    <field>
        <a>key</a>
        <b>id</b>
    </field>
    <field>
        <a>actionId</a>
        <b>action</b>
    </field>
</mapping>

现在我想在运行时找到映射。例如,将字段作为字符串 com.xyz.A.key ,我想发现它映射到com.xyz.B.id以编程方式。我查看了 Dozer API(org.dozer.Mapper 接口(interface)),它只公开了映射 bean 的方法。

所以我的问题是:是否有 API 以编程方式查找映射?

最佳答案

我不确定 Dozer 是否有用于检查映射的公共(public) API。

你可以试试ModelMapper ,这是一个对象映射库,提供与 Dozer 相同的所有功能以及用于检查映射的服务提供程序接口(interface) (SPI)。您的示例的用法很简单:

ModelMapper modelMapper = new ModelMapper();
List<Mappings> mappings = modelMapper.createTypeMap(A.class, B.class).getMappings();

查看 ModelMapper 网站了解更多信息:

http://modelmapper.org

关于java - 如何在运行时在 Dozer 中查找属性映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3044311/

相关文章:

opencv - 如何正确使用单应矩阵?

python - 如何将元组元素与列表元素交换?

Java - 映射包含对象列表的两个对象(具有不同命名但功能相同的对象)

java - 如何在 JRadioButtons 的 ButtonGroup 中随机选择一个按钮?

java - File.createNewFile() 给出 java.io.IOException : Permission denied

.net - 如何使用 Entity Framework 实现 table-per-concrete-type 策略

java - Dozer深度集合映射

java - 为什么我的 Hibernate 实体中的字段为空?

java - 无法使用 Comparator.Comparing 对 Java Set 进行排序

java - 将参数从 Java 传递给 Sql