我需要在 Java 中嵌套枚举。但是,在查看 Stackoverflow 和更大的网络时,我发现似乎没有关于嵌套枚举的一般约定。我见过很多不同的解释,但没有一个符合我的需要。
因此,让我从讨论我的要求开始:
我需要枚举来允许命名约定和我的 Java 应用程序中事件类型的简单树类型结构。例如
Event.Draw.Square;
Event.Draw.Circle;
Event.Draw.Triangle;
Event.Draw.Poly;
Event.Draw.Line;
Event.File.Load;
Event.File.Save;
Event.Screen.Zoom;
Event.Screen.Flip;
Event.Ui.New;
Event.Ui.Close;
我将如何在代码中设想这一点,但显然它是不正确的。请提供有关如何使用枚举获取此信息的任何指示?
private enum event
{
Draw {Square, Circle, Triangle, Poly, Line},
File {Save, Save_As, Load},
Screen {Zoom, Flip, Rotate_CW, Rotate_CCW},
Ui {New_Workspace, Close}
}
然后我想要一个 case 语句或条件结构能够对 Event.Screen 或 Event.Screen.Zoom 采取行动。例如,请参见以下方法:
public void evenTriggered(Event event)
{
switch (event)
{
case Event.Draw:
drawEvent(event.Draw);
case Event.UI:
uiEvent(event.Ui);
case Event.Screen:
screenEvent(event.Screen);
case Event.File
fileEvent(event.File);
default: ;//do nothing
}//end switch
}//end eventTriggered
public void drawEvent(Event.Draw event)
{
switch(event.draw)
{
case Event.Draw.Square:
workspace.addSquare();
break;
case Event.Draw.Circle:
workspace.addCircle();
break;
case Event.Draw.Triange:
workspace.addTriangle();
break;
default: ;//do nothing
};//end switch
}//end drawEvent
感谢您花时间阅读我的帖子,我期待您的建议。
安德鲁。