Java 排除SerializedName字段,但仅在未设置其

Java 排除SerializedName字段,但仅在未设置其,java,serialization,gson,Java,Serialization,Gson,我有一个对象正在序列化以发出请求 private static final String JSON_REQUEST_ID = "requestId"; private static final String JSON_OBJECT_ID = "objectId"; private static final String JSON_GROUP_ID = "groupID"; @SerializedName(JSON_REQUEST_ID) public String requestId; @S

我有一个对象正在序列化以发出请求

private static final String JSON_REQUEST_ID = "requestId";
private static final String JSON_OBJECT_ID = "objectId";
private static final String JSON_GROUP_ID = "groupID";

@SerializedName(JSON_REQUEST_ID)
public String requestId;

@SerializedName(JSON_OBJECT_ID)
public String objectId;

@SerializedName(JSON_GROUP_ID)
public String groupId;
当我发送此数据进行处理时,
objectId
groupId
需要是独占的。因此,如果我设置了
objectId
,我必须从请求中删除
groupId
,反之亦然


有没有一种简单的方法来注释这一点,或者我应该为每个类创建一个不同的类?

使用不同的类会更明显,因为不同的结果(不同的属性)意味着不同的json对象


为了“简化”,您可以使用相同的java类并为此提供自定义序列化程序

一个选项是将字段设置为私有并为字段创建setter,这样setter就可以将“另一个”字段设置为null。但最好的选择是通过继承公共字段为每个类创建类,对吗?