2017-12-27 17 views
0

Ich habe eine Hashmap von etwa 300 Schlüssel/Werte, von denen einige in ein Java-Objekt gehen müssen.HashMap zu Java Object Mapping

Die Hashmap ist eine Mischung aus Strings und Werten aus diskreten Feldern. Eine Probe dieses hashmap ist:

Flug HashMap:

Flight: AA123 
Date: 01/01/2017 
Origin: LAX 
PilotSurname: SMITH 
PilotFirstname: Bob 
PilotBirthday: 12/12/2004 
PilotGender: Male (Possible values: Male/Female/Unknown) 
PilotEthnicity: South American (could be Central American/North American etc) 
CoPilotSurname: JONES 
CoPilotFirstname: Jane 
CoPilotBirthday: 11/12/2004 
CoPilotGender: Female (Possible values: Male/Female/Unknown) 
PilotEthnicity: Central American (could be South American/North American etc) 
Stewardess1Surname: etc..... 

Dies muss in einem Java-Objekt gehen, wo weder die Tasten noch die Werte immer die Attributnamen übereinstimmen. Zum Beispiel:

Flug POJO

ID: AA123 
FlightDate: 01/01/2017 
List<Crew> 
    Familyname: SMITH 
    FirstName: Bob 
    DOB: 01/01/2004 
    Gender: Male (could be Male/Female/Transgender) 
    Ethnicity: North American (possible: North or South American) 

    Familyname: JONES 
    FirstName: Jane 
    DOB: 01/01/2004 
    Gender: Female (could be Male/Female/Transgender) 
    Ethnicity: North American (possible: North or South American) 

    Familyname: etc... 

Wie die HashMap Reihe von Menschen in eine Liste von Menschen zu bekommen, wo die Feld Namen-> Attribute nicht übereinstimmen (Name vs Family, DateOfBirth vs DOB) und wo einige der diskreten Schlüssel nicht mit den gültigen Werten für die Attribute (männlich/weiblich/unbekannt vs männlich/weiblich/Transgender) übereinstimmen.

+0

Dies ist keine Programmierfrage, es ist eine Anforderungsfrage. Wir können Ihnen nicht sagen, was Ihr Programm tun soll. – shmosel

Antwort

1

Es scheint, als ob Sie eine Funktion zum Verarbeiten der HashMap und Iteration über alle Schlüssel (Parsing für Schlüsselwörter) erstellen müssen. Verwenden Sie dann Geschäftslogik, um zu bestimmen, welche Daten von der HashMap in Ihr Flight-Objekt übernommen werden.

Es gibt keine magische "einfache" Taste für Sie auf diesem. Sie müssen die Java-Logik selbst schreiben - vorzugsweise in einer eigenen Klasse, so dass Sie, wenn sich die Geschäftslogik ändert, nur diese eine Klasse ändern müssen.

Viel Glück!

+0

So helfen Dozer und MapStruct nicht? –

Verwandte Themen