我需要创建一个结构来表示以下内容(对于类别和子类别)。它只有一层深。我正在考虑使用 Java 枚举来实现它,但不确定如何表示这种层次结构。
代表设备的我的 java 对象(业务对象)将同时具有类别和子类别属性,我想使用枚举而不是使用整数代码,如 100、1 等。有些设备只有类别但没有子类别(如以下示例中的 300)。
100 Switch
1 Interior
2 Exterior
200 Security Sensor
1 Door Sensor
2 Leak Sensor
3 Motion Sensor
300 Camera
感谢任何帮助。
谢谢
最佳答案
这java.dzone article showcases 是分层枚举的一个很好的例子:
public enum OsType {
OS(null),
Windows(OS),
WindowsNT(Windows),
WindowsNTWorkstation(WindowsNT),
WindowsNTServer(WindowsNT),
Windows2000(Windows),
Windows2000Server(Windows2000),
Windows2000Workstation(Windows2000),
WindowsXp(Windows),
WindowsVista(Windows),
Windows7(Windows),
Windows95(Windows),
Windows98(Windows),
Unix(OS) {
@Override
public boolean supportsXWindows() {
return true;
}
},
Linux(Unix),
AIX(Unix),
HpUx(Unix),
SunOs(Unix),
;
private OsType parent = null;
private OsType(OsType parent) {
this.parent = parent;
}
}
这篇文章展示了您可以通过此设置实现的许多小技巧。
关于用于层次结构/树状结构的 Java 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23123251/