我想在这个类中添加一个名为negate
的布尔字段。
@Data
@AllArgsConstructor
@ApiModel
public class RelationEntityTypeFilter {
@ApiModelProperty(position = 1, value = "Type of the relation between root entity and other entity (e.g. 'Contains' or 'Manages').", example = "Contains")
private String relationType;
@ApiModelProperty(position = 2, value = "Array of entity types to filter the related entities (e.g. 'DEVICE', 'ASSET').")
private List<EntityType> entityTypes;
@ApiModelProperty(position = 3, value = "Negate relation type between root entity and other entity.")
private Boolean negate = false;
}
但是我在relationEntityTypeFilter.getNegate()
上得到了NullPointer,当controller接收到{ "relationType": "Contains", "entityTypes": []}
这样的JSON时,也就是说,negate
字段应该设置为false
,但是这并没有发生
这里是JsonSubTypes
第一个
1条答案
按热度按时间j9per5c41#
使用
Boolean
作为字段类型不会给您带来任何好处, Package 类型对于在Collection中进行存储以及其他需要引用类型的情况非常有用(在Java中不能使用原语作为泛型类型,至少对于)。在所有其他情况下,请使用普通原语boolean
,首先,它要干净得多,因为它只有两个可能的值false
和true
(false
是默认值)。如果将
negate
的类型从 Package 类型更改为基元boolean
,则在传入的JSON中缺少该属性且没有任何额外注解时,它将被反序列化为false
。请考虑以下简化类:
反序列化示例: