小编nbc*_*chn的帖子

MapStruct:丰富映射注释以定义自定义映射器

这是我的上下文:我使用byteBuddy动态生成一个类,该类根据外部配置将对象转换为另一个对象.我遇到了一些问题,我想找到另一种方法,就是我发现MapStruct的方法.

所以我尝试构建简单的映射器,我想知道是否有可能自定义注释以添加转换函数.比如我想:

@Mapping(
    source = "mySourceField", 
    sourceType = "String",
    target = "myTargetField",
    targetType = "Integer",
    transformation = {"toInteger", "toSquare"}
),
Run Code Online (Sandbox Code Playgroud)

在mapper实现上我会有类似的东西:

 public TypeDest toSiteCatTag(TypeSrc obj) {

    if ( obj == null ) {

        return null;
    }

    TypeDest objDest = new TypeDest();

    objDest.myTargetField = Formatter.toSquare(
        Formatter.toInteger(obj.mySourceField));

    return objDest;
}
Run Code Online (Sandbox Code Playgroud)

如果有人能帮助我实现这一目标,我将不胜感激,这将为我节省大量时间.

提前致谢.

java mapstruct

10
推荐指数
1
解决办法
1万
查看次数

MapStruct:将HashMap条目作为源处理

这是我的源对象:

public class Record {

    public final long captureTime;
    public final String environnement;
    public final String bundle;
    public final String type;
    public final String id;
    public final Map<String,Object> meta;

}
Run Code Online (Sandbox Code Playgroud)

这是我的目标对象:

public class MappedRecord {

    public final long captureTime;
    public final String environnement;
    public final String bundle;
    public final String type;
    public final String id;
    public final String ip;
    public final String server;

}
Run Code Online (Sandbox Code Playgroud)

我的映射器如下所示:

public interface RecordMapper {

    RecordMapper MAPPER = Mappers.getMapper( RecordMapper.class );


    @Mappings({
        @Mapping(source = "captureTime", target …
Run Code Online (Sandbox Code Playgroud)

java mapstruct

3
推荐指数
1
解决办法
2843
查看次数

标签 统计

java ×2

mapstruct ×2