生成自定义二传手lombok或intelliJ

时间:2018-09-13 21:28:26

标签: intellij-idea jackson lombok

我有一个这样的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字段发送给jackson就像这样:

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

与:不同:

{
"lastName" : "someName"
}

im搜索如何获取杰克逊null与未定义字段,发现在setter方法中会有所不同。

现在我需要DTO的自定义设置器来获取null和未定义的json字段。 谢谢

2 个答案:

答案 0 :(得分:0)

Lombok没有生成“ isChanged”样式字段的选项。您必须将其写成长格式。

我不明白您为什么需要它;如果JSON输入具有一个null值,那么它也将在Java端也以null结束,这就是您所知道的。

答案 1 :(得分:0)

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

@Setter @Getter
public class UserDTO {

    private String firstName = "empty";

    private String lastName = "empty";

}

您可以选择一个不太可能作为输入接收的值。那么您将知道该属性是否在反序列化期间设置。