目前我有一個叫做TestEnum
的類。在我main
方法我可以firstEnum
和secondEnum
工作,而無需指定firstEnum
屬於GroupA
和secondEnum
屬於GroupB
- 代碼在TestEnum
排序了這一點。如何指定枚舉構造函數
假設firstEnum
或secondEnum
可能與三個SubGrouping
enum
中的任何一個相關聯。我希望能夠通過我的main
方法進行關聯。很明顯,我不能使用與Grouping
相同的方法,因爲GroupA
從TestEnum
內分配給firstEnum
。
public enum TestEnum {
firstEnum (Grouping.GroupA),
secondEnum (Grouping.GroupB);
private Grouping group;
TestEnum(Grouping group) {
this.group = group;
}
public enum Grouping {
GroupA, GroupB;
}
public enum SubGrouping {
SubGroup1, SubGroup2, SubGroup3;
}
}
我該怎麼做?爲了更具體的,這將是良好的構造對象,例如:
TestEnum enumWithinMainMethod = TestEnum.firstEnum(SubGrouping.SubGroup1)
此實例的期望的行爲是,它同時屬於SubGroup1
以及GroupA
。然後,從這樣的情況下,將是很好的功能,例如:
switch(enumWithinMainMethod) {
case firstEnum:
// Do something associated with firstEnum
case secondEnum:
// Do something associated with secondEnum
default:
// ...
}
這種確切的行爲不是(據我所知)可能的。 – azz
可能的重複[爲什麼不能枚舉構造函數在Java中受保護或公開?](http://stackoverflow.com/questions/3664077/why-cant-enum-constructors-be-protected-or-public-in- java) – Jackie
你是指同一個枚舉不同的屬性? – farmer1992