Как сравнить, если две записи Generi c совпадают? - PullRequest
0 голосов
/ 02 апреля 2020

Как я могу сравнить, если два GenericRecord одинаковы или нет.

В моем сценарии я хочу сравнить, если одна запись generi c равна другой записи generi c .

Если я использую метод equals, я думаю, что он сравнивает адрес памяти, а не фактические данные.

if(record1.equals(record2){
}

В моем сценарии есть сложная схема с вложенным объектом, мы можем сравнить generi c Запись?

Я хочу написать в Java функцию, которая принимает старую запись с двумя аргументами, новая запись возвращает true, если две записи совпадают.

public boolean isSame(GenericRecord oldRecord, GenericRecord newRecord) {}

Пример схемы:

{
    "type" : "record",
    "name" : "userInfo",
    "namespace" : "my.example",
    "fields" : [{"name" : "username", 
                 "type" : "string", 
                 "default" : "NONE"},

                {"name" : "age", 
                 "type" : "int",
                 "default" : -1},

                 {"name" : "phone", 
                  "type" : "string", 
                  "default" : "NONE"},

                 {"name" : "housenum", 
                  "type" : "string", 
                  "default" : "NONE"},

                  {"name" : "address", 
                   "type" : {
                         "type" : "record",
                         "name" : "mailing_address",
                         "fields" : [
                            {"name" : "street", 
                             "type" : "string", 
                             "default" : "NONE"},

                            {"name" : "city", 
                             "type" : "string", 
                             "default" : "NONE"},

                            {"name" : "state_prov", 
                             "type" : "string", 
                             "default" : "NONE"},

                            {"name" : "country", 
                             "type" : "string", 
                             "default" : "NONE"},

                            {"name" : "zip", 
                             "type" : "string", 
                             "default" : "NONE"}
                          ]},
                          "default" : {}
                }
    ]
}
...