问题描述
我有一个给定的场景:
class Curve implements Iterable<Point> {
protected String curveName;
protected Date curveVersion;
protected String curveType;
protected List<Point> points;
<!--- public getter&setters --->
}
class Point {
protected int x;
protected int y;
protected int z;
<!--- public getter&setters --->
}
当我为Curve类创建一个映射器抽象类/接口时,如下所示:
public abstract class CurveMapper {
CurveMapper INSTANCE = Mappers.getMapper(CurveMapper.class);
protected abstract com.entity.Curve map(com.dto.Curve);
}
自动生成的CurveMapperImpl类仅为Iterable中的Point类字段创建映射。除点字段外,Curve类(子类)的所有字段都将被忽略。
例如:
public class CurveMapperImpl implements CurveMapper {
@Override
public com.entity.Curve map(com.dto.Curve arg0) {
if (arg0 = bull)
return null;
com.entity.Curve curve1 = new com.entity.Curve();
for (com.dto.Point point : curve.getPoint()) {
curve1.add(covertPoint(point));
}
}
protected com.entity.Point convertPoint(com.dto.Point point) {
com.entity.Point point1 = new com.entity.Point();
point1.setX(point.getX);
point1.setY(point.getY);
point1.setZ(point.getZ);
return point1;
}
所有文件,例如 curveName
, curveVersion
, curveType
,均未映射。即使在尝试对带有源和目标的 @Mapping
批注后,该批注也不起作用。但是,如果我删除实施 Iterable<Point>
,它将起作用。我无法修改对象类,因为它们来自库。
我该如何解决。有解决方法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)