Я создаю службу сравнения, которая сравнивает два объекта и генерирует результаты, включая то, что является другой частью. Объект сравнения результатов будет отображаться в 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 является Карта и T может быть любой объект. Могу ли я использовать Map, если это так, когда я использую объект objectMapper для отображения с объекта на строку JSON String, это вызовет какие-либо проблемы?
Спасибо, поэтому, когда я создаю объект CompareResult, в переменной-члене я могу создать любую карту, такую как Map <"object1", object1>, Map <"object2", object2>. Поскольку я не являюсь владельцем объекта 1 и object2, мне не нужно вносить какие-либо изменения, верно? и когда я сериализую CompareResult в JSON String, я просто использую mapper.writeValueAsString (CompareResult)? – Terry
Я имею в виду, если я хочу поставить Object1, Object 2 как значение любой строки на карте. Мне не нужно что-либо делать с Object1 или 2? потому что я не могу их изменить. Я не являюсь владельцем объекта, который я сравниваю. – Terry
Вам просто нужны ссылки на эти объекты. На карте должны храниться только ссылки, и объекты не будут изменены. Сериализация также не изменила бы объекты. –