我需要支持许多ChartTypes
。这些图表类型中的每一个都可以支持许多ChartSubTypes
。例如AreaChart
类型可以具有PercentArea
,StackedArea
等。我正在考虑对ChartTypes
和SubTypes
使用一个Enum,然后在某个地方维护一个映射,该映射将类似于:
Map<ChartType,List<ChartSubTypes> mapTypes;
我可以在这里使用嵌套枚举模式吗?如果是,那怎么办?
最佳答案
如果该定义是常量(即您知道哪些子类型可以包含每种类型),则可以在此处使用如下枚举定义
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);
}
}
关于java - 在这种情况下使用嵌套枚举是否合适?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15288630/