生成自定义setter lombok或intelliJ

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

我有这样的Dto类:

@Setter @Getter
public class UserDTO {

    private String firstName;

    private String lastName;

}

当没有字段发送到杰克逊时,我读到了某个地方,我们可以这样改变:

public boolean isModifiedFirstName = false;

public void setFirstName(String firstName) {
    this.isModifiedFirstName = true;
    this.firstName = firstName;
}

如何用lombok生成这样的代码?甚至不使用IntelliJ模板生成isModified布尔字段

对于我的问题如何获得json字段发送到杰克逊像这样:

{
"firstName":null,
"lastname":"someName"
}

不同于:

{
"lastName" : "someName"
}

我正在搜索如何获得jackson null vs未定义的字段,并且发现可以在setter方法中获得不同。

现在我需要为我的DTO定制setter来获取null和未定义的json字段。谢谢

intellij-idea jackson lombok
2个回答
0
投票

Lombok没有生成'isChanged'风格字段的选项。你必须把它写成长篇。

我不明白为什么你需要它;如果JSON输入有一个null值,那么,它最终将作为null在java方面结束,这就是你怎么知道的。


0
投票

您可以将属性初始化为null以外的其他内容:

@Setter @Getter
public class UserDTO {

    private String firstName = "empty";

    private String lastName = "empty";

}

您可以选择不太可能作为输入接收的值。然后你会知道在反序列化过程中是否设置了属性。

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