在MapStruct中自定义源存在检查方法的名称。

问题描述 投票:0回答:1

是否可以生成一个自定义的 "存在检查 "方法名,作为属性本身的方法,而不是拥有对象的方法?

我知道我可以使用 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()));
}

有谁找到了解决这个问题的办法?

谢谢,问候

optional mapstruct
1个回答
0
投票

很遗憾,答案是直接否定的。

在当前版本的MapStruct(1.3.1final)中是不可能的,它也不在1.4.0的短名单上。你可以在MapStruct的git repo上以功能请求的形式开一个问题。

© www.soinside.com 2019 - 2024. All rights reserved.