はい、次のようにチャート サブタイプをチャート タイプに追加できます。
public enum ChartType {
AreaChart(SubChartType.PercentArea, SubChartType.StackedArea),
AnotherChart(SubChartType.PercentArea);
private List<SubChartType> subChartTypes = new ArrayList<>();
ChartType(SubChartType... subChartTypes) {
Collections.addAll(this.subChartTypes, subChartTypes);
}
public List<SubChartType> getSubChartTypes() {
return this.subChartTypes;
}
public static Map<ChartType,List<SubChartType>> getMapTypes() {
HashMap<ChartType,List<SubChartType>> mapTypes = new HashMap<>();
for (ChartType chartType : values()) {
mapTypes.put(chartType, chartType.getSubChartTypes());
}
return mapTypes;
}
}
必要なマップを取得するには、 を呼び出すだけChartType.getMapTypes();
です。
各 ChartType に 1 つ以上の SubChartTypes が必要であるという要件がある場合は、その要件を適用するためにこのコンストラクターが必要になります。
ChartType(SubChartType requiredSubType, SubChartType... subChartTypes) {
this.subChartTypes.add(requiredSubType);
Collections.addAll(this.subChartTypes, subChartTypes);
}
可変長引数は引数をゼロにすることができます。