我有两个POJO,看起来像:
public ResponseA {
private HeavyObject object;
private AdditionalDataA additionalData;
public ResponseA(HeavyObject object, AdditionalDataA additionalData) {
this.object = object;
this.additionalData = additionalData;
}
}
public ResponseB {
private HeavyObject object;
private AdditionalDataB additionalData;
public ResponseB(HeavyObject object, AdditionalDataB additionalData) {
this.object = object;
this.additionalData = additionalData;
}
}
然后我有一个方法,将这些对象发送到不同的端点,类似于:
public void sendResponses(
ObjectMapper mapper,
HeavyObject object,
AdditionalDataA addDataA,
AdditionalDataB addDataB) {
// Here object is serialized twice, which is costly!
String jsonA = mapper.writeValueAsString(new ResponseA(object, addDataA));
String jsonB = mapper.writeValueAsString(new ResponseB(object, addDataB));
sendResponseA(jsonA);
sendResponseB(jsonB);
}
有没有一种方法可以序列化这些响应,以便
HeavyObject
只序列化一次?