如何创建包含未确定字段的Object

时间:2015-02-06 19:15:22

标签: java json generics serialization

我正在创建一个比较服务,它比较两个对象并生成结果,包括不同的部分。比较结果对象将映射到JSON并返回REST服务。

public class CompareResult {

private final String errorCode;
private final String codeName;
private final Map<String, T> compareResult;

setter, getter
}

由于我将比较的对象很复杂,并且它可能包含许多不同的包,例如: ObjectToBeCompared 对象包括3个字段,这是另外三个对象1,2,3。如果对象2在 objectToBeCompared1 objectToBeCompared2 之间存在差异,那么我想将对象2复制到 compareResult 字段中:

 compareResult.put("Object2InObjectToBeCompared1", ObjectToBeCompared1.Object2),   
 compareResult.put("Object2InObjectToBeCompared2", ObjectToBeCompared2.Object2)

T 可能是对象1或对象3.

我知道这可能与泛型类型有关,但是,我只是不知道如何实现它。简单来说,在我在 CompareResult 类中定义的字段中, compareResult Map ,而 T 可以是任何对象。我可以使用 Map ,如果是这样,当我使用 objectMapper 从对象映射到JSON String时,会导致任何问题吗?

1 个答案:

答案 0 :(得分:0)

  

compareResult是一个Map,T可以是任何对象

由于您不想对类型进行任何限制,我认为放弃泛型是个好主意。

您可以执行类似

的操作
private final Map<String, Object> compareResult;

你的第二个问题的答案是否定的,ObjectMapper应该可以正常工作。

希望这有帮助。