在这种情况下使用适合的嵌套枚举?
我需要支持一些 ChartTypes
。这些图表类型中的每一种都可以支持许多 ChartSubTypes
。例如 AreaChart
类型可以具有 PercentArea
, StackedArea
等我正在考虑在 ChartTypes
和 SubTypes
中使用枚举,然后在某处保持一个地图,如下所示:
I have a requirement to support a number of ChartTypes
. Each of these chart types can support a number of ChartSubTypes
. For example AreaChart
type can have PercentArea
, StackedArea
etc. I am thinking of using an Enum both for ChartTypes
and SubTypes
and then maintain a map somewhere which will be something like :
Map<ChartType,List<ChartSubTypes> mapTypes;
我可以以某种方式在这里使用嵌套的枚举模式吗?如果是,那么如何?
Can I somehow use a nested enum pattern here? If yes then how?
如果该定义是不变的(即您知道哪些子类型可以包含每种类型)可以使用这里的枚举定义如下
If that definition is constant (i.e. You know which sub types can contain every type) You can use here enum definitions as follows
enum ChartSubTypes{
PercentArea, StackedArea, ChartSubType3;
}
enum ChartTypes{
AreaChart(ChartSubTypes.PercentArea, ChartSubTypes.StackedArea),
CharType2(ChartSubTypes.PercentArea, ChartSubTypes.ChartSubType3);
private List<ChartSubTypes> subTypes = new ArrayList<ChartSubTypes>();
private ChartTypes(ChartSubTypes ...chartSubTypes){
for(ChartSubTypes subType : chartSubTypes){
subTypes.add(subType);
}
}
public List<ChartSubTypes> getSubTypes(){
return Collections.unmodifiableList(subTypes);
}
}