我需要支持许多ChartTypes。这些图表类型中的每一个都可以支持许多ChartSubTypes。例如AreaChart类型可以具有PercentAreaStackedArea等。我正在考虑对ChartTypesSubTypes使用一个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/

10-12 20:36