是否可以生成一个自定义的 "存在检查 "方法名,作为属性本身的方法,而不是拥有对象的方法?
我知道我可以使用 hasProperty() 方法来检查一个值的存在...https:/mapstruct.orgdocumentationstablereferencehtml#source-presence-check。
但对于Optional或JsonNullable(来自OpenApi nonullable),检查方法是在属性本身,而不是在自己的对象上... :-(
我可以很容易地 "使用 "或扩展一个简单的自定义Mapper来映射JsonNullable或Optional。
@Mapper
public class JsonNullableMapper {
public <T> T fromJsonNullable(final JsonNullable<T> jsonNullable) {
return jsonNullable.orElse(null);
}
public <T> JsonNullable<T> asJsonNullable(final T nullable) {
return nullable != null ? JsonNullable.of(nullable) : JsonNullable.undefined();
}
}
我想实现的是类似 "存在检查 "这样的功能。
if(source.getProperty().isPresent()) {
target.set(customMapper.map(source.getProperty()));
}
有谁找到了解决这个问题的办法?
谢谢,问候
很遗憾,答案是直接否定的。
在当前版本的MapStruct(1.3.1final)中是不可能的,它也不在1.4.0的短名单上。你可以在MapStruct的git repo上以功能请求的形式开一个问题。