最近用到枚举,由于枚举变量比较多且存在一定的分组分类的关系,所以想能比较清晰的维护这些变量。今晚有空,简单研究了一下,分享出来,供大家讨论。
可供考虑的分类方式
- /**
- * 枚举接口
- *
- * @author lihzh(苦逼coder)
- * @data 2012-2-21 下午8:51:39
- */
- public interface EnumInter {
- public enum EnumB implements EnumInter{
- B1, B2, B3;
- public enum EnumSubB implements EnumInter{
- C1, C2, C3
- }
- }
- }
调用方式和一些其他测试:
- /**
- * 测试练习枚举用法
- *
- * @author lihzh(苦逼coder)
- * @data 2012-2-21 下午8:49:41
- */
- public class EnumMain {
- /**
- * @param args
- * @author lihzh
- * @data 2012-2-21 下午8:49:41
- */
- public static void main(String[] args) {
- // 遍历枚举
- for (EnumDemo e : EnumDemo.values()) {
- System.out.println("EnumDemo values: " + e.name());
- }
- // 枚举集合,简介
- EnumMap<EnumDemo, String> enumMap = new EnumMap<EnumDemo, String>(
- EnumDemo.class);
- enumMap.put(EnumDemo.A, "AAA");
- // 定义函数
- System.out.println(EnumDemo.A.getValue());
- System.out.println(EnumDemo.E.getValue());
- // 使用接口分组枚举
- EnumInter eInter = EnumInter.EnumB.B2;
- EnumInter eInterB = EnumInter.EnumB.EnumSubB.C1;
- printValue(eInter);
- printValue(eInterB);
- }
- private static void printValue(EnumInter eInter) {
- System.out.println(eInter.toString());
- }
- public enum EnumDemo implements EnumInter {
- A, B, C, D, E;
- public String getValue() {
- return "Value is: " + this.name();
- }
- }
- }
主要是27,28行的调用方式。可体现出分组的效果。方法接口参数,统一接受接口类型即可。
本文转自mushiqianmeng 51CTO博客,原文链接:http://blog.51cto.com/mushiqianmeng/786140,如需转载请自行联系原作者