I am new to java and I am stuck at one place. I am taking xml request which is coming in array.
<PassengersDetails>
<Passenger>
<passesngerName>ABC</passesngerName>
<passengerAge>25</passengerAge>
</Passenger>
<Passenger>
<passesngerName>DEF</passesngerName>
<passengerAge>28</passengerAge>
</Passenger>
<Passenger>
<passesngerName>GHI</passesngerName>
<passengerAge>48</passengerAge>
</Passenger>
<Passenger>
<passesngerName>KLM</passesngerName>
<passengerAge>18</passengerAge>
</Passenger>
</PassengersDetails>
My xml object is getting turned into array like below.
Passenger [] passenger= passengersDetails.getPassenger();
And my java object looks like
class Passenger {
passengerName1;
passengerAge1;
passengerName2;
passengerAge2;
passengerName3;
passengerAge3;
passengerName4;
passengerAge4;
}
with setter and getter.
I wanted to set all the data from array in java object. I am able to set it individually after checking if array is preset or not.
if(arr[0] != null){
setPassengerName1 = arr[0].getPassengerName;
setPassengerAge1 = arr[0].getPassengerAge;
}
if(arr[1] != null){
setPassengerName2 = arr[1].getPassengerName;
setPassengerAge2 = arr[1].getPassengerAge;
}....
How can I set passenger array into Passenger java object mentioned above.
But I wanted to know if there is any other way we can do this dynamically.
Something like in the same loop and setting it dynamically.
Passengerclass to not have 8 distinct fields that just happen to have similar names, but instead to use an array or a list of entries.Passengerjava class not correspond to the<Passenger>XML element? And in the class corresponding toPassengerDetails(the one you confusingly calledPassenger), why don't you use a JavaPassenger[]array orList<Passenger>list instead of the 8 individual fields?forloops etc. And also forget "very efficient way". Think about efficiency only when you find efficiency problems. Code clarity should come first at top priority.