近用到枚举,由于枚举变量比较多且存在一定的分组分类的关系,所以想能比较清晰的维护这些变量。今晚有空,简单研究了一下,分享出来,供大家讨论。
可供考虑的分类方式
/** * 枚举接口 * * @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行的调用方式。可体现出分组的效果。方法接口参数,统一接受接口类型即可。