java – 我可以在枚举中嵌套类,并在枚举中创建arraylist吗?

前端之家收集整理的这篇文章主要介绍了java – 我可以在枚举中嵌套类,并在枚举中创建arraylist吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在努力做到这一点.我有一个星期的枚举.我使用枚举,因为平日是不变的 @H_404_2@public enum WeekDay { MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY; }

我有一个名为Session的课程.会话就是在特定时间发生的事情,例如数学课

@H_404_2@public class Session { // some fields public String title; public int duration,start,end; /** several methods follow to get and set,and check e.t.c **/ }

有一个名为Venue的第三类.场地举办会议,例如数学课可以从上午9点到上午10点,在一个叫做“数学课”的场地(一个例子)

@H_404_2@public class Venue { // simply a place that can hold several sessions in a day private String name; private int capacity; /** several methods**/ }

我需要做的是 – 在枚举中创建会话列表,即每天都有会话,然后我需要在场地内的结构(ArrayList或enumset?)中保存枚举,即场地有会话周一至周五(理想的是学校班级).所以它会是这样的:

@H_404_2@public enum WeekDay { MONDAY,FRIDAY; /** the list of sessions for a given day**/ private ArrayList <Session> list; private int numOfSessions; // number of sessions /** with some methods like **/ addSession(); removeSession(); getSession(); checkTimeOfSession(); ... }

所以在场地,我们可以:

@H_404_2@public class Venue { private String name; private int capacity; private ? <WeekDay> list; //structure to hold days,i don't know which one to use yet /** several methods like **/ numOfSessionsOn(); getSessionsOn(); addSessionOn(); removeSessionOn(); ... }

以下是我的问题:

>我可以将Session类嵌入枚举中吗?
> enum可以接受arraylists吗?
>在会场内举办会议的最佳结构是什么?
>对此更好的想法?

有人告诉我,我将在同一天通过所有场地,例如星期一是所有场地的星期一,每个场地都会更新其名单.所以即使没有人发表评论,我认为这是讨论的结束.

解决方法

如果你在工作日枚举中添加太多,你应该考虑一个超类或界面工作日,并在他自己的班级中实现每个工作日.

如果你真的想在你的枚举中做到这一点,你可以用这种方式做到:

1)实现方法,在每个方法(和构造函数)中进行切换,如:

@H_404_2@switch (this) { case MONDAY: return ... break; default: break; }

2)使方法抽象,为每个工作日添加一个匿名实现:

@H_404_2@public enum weekday { MONDAY { @Override public Object getSomething() { // TODO Auto-generated method stub return null; } }; public abstract Object getSomething(); }

3)为构造函数添加参数:

@H_404_2@public enum weekday { MONDAY(new Object()); final private Object object; private weekday(Object object) { this.object = object; } }

但正如我所说,尽量避免使你的枚举更多枚举.

原文链接:https://www.f2er.com/java/444644.html

猜你在找的Java相关文章