MapStruct为生成实现Iterable <T>接口的对象生成文件

问题描述

我有一个给定的场景:

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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...