Enum包含Enum Java(enumCeption)

时间:2018-03-26 09:13:05

标签: java enums

如何在枚举构造函数中传递枚举? 这是我到目前为止所尝试的内容。

这是为了保证我不会混淆页面及其各自的部分。 我希望能够做'SectionsEnum section = PAGE2.sectionsEnum.SECTION_D;'在我的代码中的其他地方。

PagesEnum.class

public enum PagesEnum {
  PAGE1(Page1Sections.class), // incompatible types, required SectionsEnum found Page1Sections
  PAGE2(Page2Sections.class);

  Class<? extends SectionsEnum> sectionsEnum;  

  PagesEnum(final Class<? extends SectionsEnum> sectionsEnum) {
    this.sectionsEnum = sectionsEnum;
  }
}

Page1Sections.enum

public enum Page1Sections implements SectionsEnum {
  SECTION_A,
  SECTION_B;
}

Page2Sections.enum

public enum Page2Sections implements SectionsEnum {
  SECTION_C,
  SECTION_D;
}

Main.class

public class Main {
    public void example() {
        SectionsEnum section = PAGE2.sectionsEnum.SECTION_D;
    }
}

1 个答案:

答案 0 :(得分:0)

你永远不会得到PAGE2.SECTION_D,但你可以在SECTION_D.getPage()周围做其他方式的关系: :

public enum SectionsEnum {
  SECTION_A(PagesEnum.PAGE1),
  SECTION_B(PagesEnum.PAGE1),
  SECTION_C(PagesEnum.PAGE2),
  SECTION_D(PagesEnum.PAGE2),
  ;
PagesEnum(PagesEnum page) {...}
}