【发布时间】:2021-06-24 21:58:23
【问题描述】:
我想在 Java 8 中创建一系列自定义 POJO,以表示通过 JSON 接收和反序列化的数据结构。
数据看起来像(顶层向下)
RootNode
<Set>LocalDate
<Set>Location
<Set>Shift
Integer
例如,数据可能如下所示:
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
....
在上面的结构中,每个日期都有几个子位置,每个位置有三个子班次,每个班次都有一个整数。
将其表示为我创建的 Java 对象:
public class RootNode {
public RootNode(){}
public LinkedHashMap<LocalDate, Location> locations;
}
public class Location {
public Set<Shift> shifts;
}
public class Shift {
public enum ShiftTypes {
MORNING, AFTERNOON, NIGHT
}
public Integer count;
}
不应有重复的日期、地点或员工。
这些类是否正确地代表了概述的数据结构?
所有这些类都是自定义的,除了 LocalDate 是本地的 - 我不确定是否要创建一个新的自定义日期类,它又具有 Set 属性?
如果这是设置结构的正确方法,那么语法是什么?使用扩展?
更新
我尝试使用以下方法扩展 LocalDate:
public class ShiftLocalDate extends LocalDate {
public Set<Shift> shifts;
}
但由于LocalDate is final,这似乎无法完成?
【问题讨论】:
-
我不清楚上下文。数据集代表什么?为什么你认为树结构适合这些数据?
-
问题是创建的结构是否是在 java 中存储数据的最佳方式 - 至少在内存中时,并且 nbested 对象是否正确表示接收到的数据(通过 JSON)
-
如果您的目标是用 Java 表示整个层次结构,那么此问题可能与以下内容重复:Represent tree hierarchy in java
标签: java