我有一个简单的 Id Value-Object 封装和硬输入我的 id。这是一个简单的泛型,内部使用 UUID。这是我的课:
public class Id<T> {
private final UUID _value;
public Id(@NotNull UUID id) {
_value = id;
}
public Id(@NotNull String id) throws IllegalArgumentException {
_value = UUID.fromString(id);
}
public Id() {
_value = UUID.randomUUID();
}
@Override public boolean equals(Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;
Id<?> id = (Id<?>) o;
return _value.equals(id._value);
}
@Override public int hashCode() {
return Objects.hash(_value);
}
@Override public String toString() {
return _value.toString();
}
public UUID toUuid() {
return _value;
}
}
当前序列化/反序列化 JSON-B 时会创建一个空对象(可能是因为我没有公共字段)。是否可以更改(反)序列化以将此对象表示为单个字符串而不是 json 对象?