【发布时间】:2021-08-03 03:07:33
【问题描述】:
嗨this 似乎适用于添加额外的方法,但不适用于在现有方法上添加新注释。假设我们有以下类:
public class SourceClass {
private String field_1;
private String field_2;
}
public class TargetParent {
private String field_a;
}
public class TargetChild extends TargetParent {
private String field_b;
}
父对象是可以由其他方扩展的框架的一部分。 子对象是添加新字段的具体扩展的示例。
我正在计划一种使用 Mapping Hierarchy 的方法,如下所示:
@Mapper
public interface ParentMapper {
@Mapping(source="field_1", target="field_a")
public TargetParent convert(SourceClass source);
}
@Mapper
public interface ChildMapper extends ParentMapper {
@Mapping(source="field_2", target="field_b")
public TargetChild convert(SourceClass source);
}
我期待看到 ChildMapper 的实现:
public TargetChild convert(SourceClass source){
// target instanciation through factory here
target.setField_a(field_1);
target.setField_b(field_2);
}
但这不起作用:@Mapping 注解似乎没有被继承。
我可以尝试找出一些替代解决方案,但似乎我开始破解框架,这不是我的意图。
我错过了什么吗?
【问题讨论】:
-
您能说得更具体些吗?您从哪个对象映射以及映射到哪个对象?
-
感谢伊利亚的快速回复。我编辑了这个问题,使其更具体地针对我遇到的主要问题。请检查是否需要更多说明。
标签: java polymorphism mapping mapstruct class-hierarchy