1

我一直在为如何在 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)

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

4

1 回答 1

0

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

于 2013-08-28T18:23:13.260 回答