【发布时间】:2017-06-03 04:49:56
【问题描述】:
这是我的上下文:我正在使用 byteBuddy 动态生成一个类,该类根据外部配置将一个对象转换为另一个对象。我遇到了一些问题,我想找到一个替代方案,这就是我发现 MapStruct 的方式。
所以我尝试构建简单的映射器,我想知道是否有可能自定义注释以添加转换功能。例如我想要:
@Mapping(
source = "mySourceField",
sourceType = "String",
target = "myTargetField",
targetType = "Integer",
transformation = {"toInteger", "toSquare"}
),
在映射器实现上我会有类似的东西:
public TypeDest toSiteCatTag(TypeSrc obj) {
if ( obj == null ) {
return null;
}
TypeDest objDest = new TypeDest();
objDest.myTargetField = Formatter.toSquare(
Formatter.toInteger(obj.mySourceField));
return objDest;
}
如果有人可以帮助我实现这一目标,我将不胜感激,这将为我节省大量时间。
提前致谢。
【问题讨论】:
-
您在编译期间是否有
TypeDest和TypeSrc或者它们是动态类?您是否在运行时生成它们?