作者AnyaAlstreim (Mordred)
看板java
标题[问题] 要如何使用 enum 代替阵列的下标
时间Fri Dec 6 01:31:48 2013
大家好,我是 Java 新手。
我在写 Android 专案时遇到一种情况:
如果有五个按钮,内容分别为以下
【 精华公布栏 】
【 我 的 最爱 】
【 分组讨论区 】
【 私人信件区 】
【 休闲聊天区 】
然後 code 这样写
Button[] button = new Button [5];
button[0] = ...;
button[1] = ...;
...
button[4] = ...;
这时候会有可读性和易维护性的问题,例如想在最开头加上一个新的按钮
【 个人设定区 】
那後面的 button 下标就要全部往後移了。
以前写 C++ 的经验是,使用 enum 并且直接指定一个常数
例如
enum e_Button {
ANNOUNCE = 0,
FAVORITE,
...
};
之後就可以使用
button[ANNOUNCE]
来取代 index
但是 Java 的 enum 似乎没这麽简单...
如果要取值可能还要用 value 之类的 method
我想的到的方法大概要在 [] 里 call method,补上参数就长长一条,
这样可读性反而又更差了..... 重构下去大概会被组员骂死吧 XD
刚好找不太到有人遇过这种问题,
想请教一下大家是如何解决的?
谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.60.254.27
※ 编辑: AnyaAlstreim 来自: 61.60.254.27 (12/06 01:32)
2F:→ danny8376:每个button各自有变数名不行吗? 12/06 06:15
3F:→ AnyaAlstreim:楼上,可以。 12/06 10:42
4F:→ AnyaAlstreim:我也没有写 Android 经验,这样写不好吗? 12/06 10:46
5F:推 PsMonkey:扯到可读性,基本上就跟平台没关系了 Zzzz 12/06 11:26
7F:→ danny8376:原PO 那是大型Project 所以有自己整个的习惯 12/06 12:38
8F:→ danny8376:至於独立变数怎看都和你需求啊... 12/06 12:40
9F:→ danny8376:除非需要foreach所有button 不然用Array本身可读性... 12/06 12:41
10F:→ AnyaAlstreim:谢谢楼上,那我就不用 Array 了 12/06 13:16
11F:→ tkcn:赞成 danny8376, 但若需要 foreach 我会用 HashMap 搭 Enum 12/06 13:35
12F:→ AnyaAlstreim:这样来看似乎比 C++ 的 enum 还麻烦阿... 12/06 14:16
14F:→ AnyaAlstreim:楼上,这种东西我当然找过。 12/14 00:50