欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入
最近用到枚举,由于枚举变量比较多且存在一定的分组分类的关系,所以想能比较清晰的维护这些变量。今晚有空,简单研究了一下,分享出来,供大家讨论。
可供考虑的分类方式
1./**
2. * 枚举接口
3. *
4. * @author lihzh(苦逼coder)
5. * @data 2012-2-21 下午8:51:39
6. */
7.public interface EnumInter {
8.9. public enum EnumB implements EnumInter{
10. B1, B2, B3;
11. public enum EnumSubB implements EnumInter{
12. C1, C2, C3
13. }
14. }
15.}
调用方式和一些其他测试:
1./**
2. * 测试练习枚举用法
3. *
4. * @author lihzh(苦逼coder)
5. * @data 2012-2-21 下午8:49:41
6. */
7.public class EnumMain {
8.9. /**
10. * @param args
11. * @author lihzh
12. * @data 2012-2-21 下午8:49:41
13. */
14. public static void main(String[] args) {
15. // 遍历枚举
16. for (EnumDemo e : EnumDemo.values()) {
17. System.out.println(”EnumDemo values: ” + e.name());
18. }
19. // 枚举集合,简介
20. EnumMap<EnumDemo, String> enumMap = new EnumMap<EnumDemo, String>(
21. EnumDemo.class);
22. enumMap.put(EnumDemo.A, “AAA”);
23. // 定义函数
24. System.out.println(EnumDemo.A.getValue());
25. System.out.println(EnumDemo.E.getValue());
26. // 使用接口分组枚举
27. EnumInter eInter = EnumInter.EnumB.B2;
28. EnumInter eInterB = EnumInter.EnumB.EnumSubB.C1;
29. printValue(eInter);
30. printValue(eInterB);
31. }
32.33. private static void printValue(EnumInter eInter) {
34. System.out.println(eInter.toString());
35. }
36.37. public enum EnumDemo implements EnumInter {
38. A, B, C, D, E;
39. public String getValue() {
40. return “Value is: ” + this.name();
41. }
42. }
43.44.}
主要是27,28行的调用方式。可体现出分组的效果。方法接口参数,统一接受接口类型即可。
记忆像是倒在手心里的水,不论是摊平还是握紧,