Java反射:避免使用默认值的字段

时间:2015-10-28 10:33:07

标签: java json reflection

我有以下类结构:

public Class A{
private int a;
private String b;
private B binst;
}

public Class B{
private int x;
private String y;
}

定义了所有的getter和setter。我使用Java反射来调用如下:

method.invoke(ClassAObj, ClassBObj);

现在,在调用此选项之前,我只设置了y而不是x。我将此ClassAObj转换为JSON,并发现0的默认值设置为x,它出现在JSON中。我不想让x字段出现在JSON中。我该怎样避免这个?

有趣的是,如果我设置x而不是y,则标记y不会出现在JSON中。

1 个答案:

答案 0 :(得分:2)

因为int是一个原语,即:不可为空,通常Json解析器会丢弃空值。 您可以使用reference类型Integer,其默认值为null

public Class B{
  private Integer x;
  private String y;
}