Инициализировать вложенные объектыJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Инициализировать вложенные объекты

Сообщение Anonymous »

У меня есть ряд вложенных объектов, у каждого родителя есть несколько дочерних объектов. Я создал специальные классы для хранения этих данных, но теперь мне нужно понять, как их инициализировать.
Данные выглядят так:

Код: Выделить всё

2021-06-20
AMBULANCE\CA\Los Angeles
Morning
4
Afternoon
5
Nights
5
AMBULANCE\CA\San Deigo
Afternoon
7
Nights
6
Morning
4
2021-06-21
AMBULANCE\CA\Los Angeles
Night
6
Morning
5
Afternoon
5
ANBULANCE\CA\San Francisco
Afternoon
5
Morning
4
....
Чтобы хранить эти данные, у меня есть следующие классы:

Код: Выделить всё

public class RootNode {
public RootNode(){}
public Set shiftDateSet;
}

public class ShiftDate {
public LocalDate date;
public Set location;
}

public class Location {
public Set shifts;
}

public class ShiftType {
public enum ShiftTypes {
MORNING, AFTERNOON, NIGHT
}
public Integer count;
}
Затем я перебираю десериализованный JSON, чтобы заполнить свой новый пользовательский класс RootNode:

Код: Выделить всё

RootNode rootNode = new RootNode();

for (Entities e: rootJsonNode.someEntity) {
LocalDate someDate;
someDate = e.dto.startDateTime.toLocalDate();
if (!rootNode.get(someDate)) {
rootNode.shiftDateSet.add(new ShiftDate(date, new Set ))
// the line above should add a new date AND add
// new Set but do not need to bind to
// a name for the Set.
}
if (rootNode.get(someDate)) {
// node already exists, so add stuff and increment counter
}

}
Я проверяю, существует ли дата в корневом узле, и если нет, добавляю ее, но здесь мне нужна помощь: перед добавлением даты мне нужно инициализировать новый ShiftDate и все дочерние объекты.
В конечном итоге я хочу иметь доступ к rootNode.getShiftDate(date).getLocation(location).getShiftType(type).getCount();
/>Как это сделать?

Подробнее здесь: https://stackoverflow.com/questions/681 ... ed-objects
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»