仅当属性为 null 时,如何从 lombok 构建器中排除该属性

ama*_*ain 9 java builder lombok

我有一个用户模型类,如下所示:

@JsonSerialize
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@Builder
public class User {
    @Default
    String _dn = BASE_USER_DN;
    @Default
    String[] objectClass = {"top", "person", "organizationalPerson", "inetOrgPerson", "companyUser"};
    @Default
    String[] cn = {"user205"};
    @Default
    String[] sn = {"Dynamic2"};
    @Default
    String[] username = {"LindaDynamic2"};
}
Run Code Online (Sandbox Code Playgroud)

现在我想生成一个省略空字段的用户对象,因此:

userBody = User.builder().cn(null).build();
Run Code Online (Sandbox Code Playgroud)

将创建一个没有 cn 属性的对象,或者如果我添加了一个没有默认值的字段并且它没有在构建器上设置,它将被省略。

这可能吗?

小智 10

如果要在序列化过程中排除,请添加以下注释:

@JsonInclude(Include.NON_NULL)
Run Code Online (Sandbox Code Playgroud)