java - Dozer 中泛型的深度映射

标签 java generics mapping dozer

我一直在努力解决如何在 Dozer 中使用泛型映射到对象,但经过大量搜索后没有找到任何可以帮助我的东西。

我正在尝试将我编写的一些对象映射到其他人创建的一些对象。我开始使用注释并看到类似的错误,因此我转而使用映射文件。然而,这似乎并没有帮助。

这是我想要实现的目标的示例。

public interface MyObject<T extends MyContent> {
   T getData();
}

public interface MyStaff extends MyContent {
   Demo getDemo();
}

public interface Demo {
   Name getName();
}

public interface Name {
  String getFirstName();
  String setFirstName(String firstName);
}
<mapping>
    <class-a>com.example.Staff</class-a>
    <class-b>com.example.MyObject</class-b>
    <field>
        <a>firstName</a>
        <b>data.demo.name.firstName</b>
    </field>
</mapping>

这是我看到的错误:

org.dozer.MappingException: No read or write method found for field (data.demo.name.firstName) in class (interface com.example.MyObject)

我尝试了另一种排列(例如,使用具体类而不是接口(interface)),但没有任何效果。

最佳答案

我能够让这个工作。看来问题是由于实现类不是公开的。看起来这可能是一个错误,或者至少是一个增强。 Dozer 应该通知您该类无法访问,因为提示未找到该字段具有误导性。

关于java - Dozer 中泛型的深度映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18403641/

相关文章:

c++ - 允许图像角点坐标且适用于非网络语言的 map API

linq - 使用在运行时解析的类型调用 System.Linq.Queryable 方法

c# - .NET 运行时处理通用代码

java - 是否有用于 Java 字符串的 left() 函数?

java - 将字节与 0b1111_1111 按位与有何作用?

java - SpringBoot 使用 MongoDB 实现通用 DAO

objective-c - RestKit:JSON 映射不起作用

java - 将 servlet 请求参数映射到 java 类的最佳方法是什么?

java - hashmap、java8、null/empty 检查

java - 访问 bean 的嵌套/索引属性时如何防止 NPE