Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mapstruct java.util.Stack转换_Java_Stack_Mapstruct - Fatal编程技术网

Mapstruct java.util.Stack转换

Mapstruct java.util.Stack转换,java,stack,mapstruct,Java,Stack,Mapstruct,所以,我有三个Java类 class A { private Long id; //getter, setter, etc } class B { private Stack<A> myField; //getter, setter, etc } class C { private Stack<Long> myField; } A类{ 私人长id; //接球手、接球手等 } B类{ 私有堆栈myField; //接球手、接球手等 }

所以,我有三个Java类

class A {
   private Long id; 
   //getter, setter, etc
}

class B {
   private Stack<A> myField;
   //getter, setter, etc
}

class C {
   private Stack<Long> myField;
}
A类{
私人长id;
//接球手、接球手等
}
B类{
私有堆栈myField;
//接球手、接球手等
}
C类{
私有堆栈myField;
}
我想把B类的对象转换成C类的对象,两个堆栈的顺序应该相同


我知道如何通过附加的结构、循环等手动执行此操作。但是否有任何优雅的方法可以通过Mapstruct执行此操作?

因此,经过几次尝试,目前我发现的最优雅的方法是下一种:

@Mapper
public interface CMapper {

    C BtoC(B b);

    default Long myFieldConverter(A myField) {
        return myField.getId();
    }
}
我手动调用getId(),但至少我没有遍历集合

我试着做一些注释,比如

@Mapping(target = "", source = "id")
Long myFieldConverter(A myField);
但还没有找到要放入目标中的内容,因为字段不是任何bean,但长时间没有任何字段、setter等,我也没有找到在“target”中引用构造函数的方法