MapStruct 使用枚举初始化变量

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

我有这个枚举:

@Getter
public enum Error
{
    EMAIL( "Invalid email" ),
    GROUP( "Invalid group" ),
    NONE( "" );

    private final String errorMessage;

    Error( String errorMessage )
    {
        this.errorMessage = errorMessage;
    }
}

我有这门课:

@Value
public class User {
    private Error error;
}

我有一个映射器:

@Mapper
public interface UserModelToUser
{
    User map( UserModel userModel );
}

我的想法是使用枚举 Error.NONE 的值初始化错误,但我不知道如何使用

@Mapping
或其他方式来实现这一点。

枚举和类位于不同的包中,否则我可以使用这样的东西:

@Mapping( target = "error", expression = "java( Error.NONE )" )

我无法搬出那个包裹。

谢谢

java mapstruct
2个回答
0
投票

您只需写下枚举的全名即可。 例如:

    @Mapping( target = "error", expression = "java( com.somepackage.somesubpackage.Error.NONE )" )
    User map(UserModel userModel );

0
投票

这对我也有效。非常感谢!

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