我使用Mapstruct(1.2.0.final)来映射dto对象,我希望将对象的属性提取到它自己的对象实例。
@Data
public class ExternalResult {
@JsonProperty("items")
List<Item> items;
}
@Data
public class MyItem {
String name;
}
@Mapper(componentModel = "spring")
public interface GraphhopperMapper {
@Mappings({
@Mapping(target = "??", source="items")
})
List<MyItem> mapItems(ExternalResult externalResult);
}
如何做到这一点?或者有没有更方便的方法来去掉只有一个属性的(无用的)对象?
提前谢了。
在这种情况下,我建议您自己实现方法(例如,通过将映射器创建为抽象类),而不是让MapStruct为您完成:
List<MyItem> mapItems(ExternalResult externalResult) {
return externalResult.getItems()
.stream()
.map(i -> new MyItem(i.getName())
.collect(Collectors.toList());
}
MapStruct的想法是帮助您自动化90%的琐碎映射,但让您手写剩下的更多特殊情况,比如。
我需要将源类中的字段值映射到字段属性。我可以使用Mapstruct使用@mapper注释的'expression'参数来完成 有没有其他方法可以不使用“表达式”来进行映射?
问题内容: 给定一个JavaScript对象: 如何有效地将内部对象提取到数组中? 我不需要维护 object [n] ID 的句柄。 问题答案:
映射器类如下所示:
我将xml字符串转换成一个simpleXMLElement对象使用simplexml_load_string其值print_r输出 如何从这个对象中提取节点和属性值?使用 要获取正文的内容,节点未输出任何值 更新: XML字符串 是否同时提取节点值和属性
我在mapstruct映射器上遇到了问题。当运行mvn clean install(或mvn clean compile)时,我会得到以下错误: 问题是我不知道mapstruct从哪里获得这个“java.lang.Integer Architecture.Loads”。我不明白这个整数是从哪里来的,正如您在我的代码中看到的,没有整数。而且,到目前为止,我在使用类似的映射器时从未遇到过这个错误。 下
是否有可能映射包的私有属性(不使用lombok)。我们成功地将包私有类映射到DTO,但为了成功映射属性,我们需要它们具有公共getter和setter。 我安慰自己,这个类仍然是包私有的,但在属性之前它是公开的:) 谢谢!亚历克斯。