gpt4 book ai didi

java - 如何用枚举分类

转载 作者:行者123 更新时间:2023-11-30 07:45:42 25 4
gpt4 key购买 nike

我使用枚举来表示类型和子类型。

enum Type {

TYPE1(1),

TYPE2(2),
...

private int constant;

Type(int constant) {
this.constant = constant;
}
}

enum SubType {

SUBTYPE1(1),

SUBTYPE2(2),

SUBTYPE3(3),
...

private int constant;

SubType(int constant) {
this.constant = constant;
}
}

每种类型都有不同的子类型。

例如,TYPE1 有子类型 SUBTYPE1 和 SUBTYPE2,TYPE2 有子类型 SUBTYPE2 和 SUBTYPE3。

我应该用什么结构来表示这种关系?我想到了使用 map 。例如 Map<Type, List<SubType>>

还有其他办法吗?

最佳答案

假设类型和子类型基础结构是不变的,您总是可以将子类型列表附加到类型枚举。

enum Type {

TYPE1(1, Arrays.asList(SubType.SUBTYPE1, SubType.SUBTYPE2)),

TYPE2(2, Arrays.asList(SubType.SUBTYPE3),
...

private int constant;
public final List<SubType> subtypes;

Type(int constant, List<SubType> subtypes) {
this.constant = constant;
this.subtypes = subtypes;
}
}

enum SubType {

SUBTYPE1(1),

SUBTYPE2(2),

SUBTYPE3(3),
...

private int constant;

SubType(int constant) {
this.constant = constant;
}
}

这可能会提供一种更优雅的方式来访问类型的子类型。

附带说明一下,最好使用 Arrays.asList() 之类的方法来定义这些映射,以确保“子类型”列表不可变。

关于java - 如何用枚举分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51434295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com