最近用到枚举,由于枚举变量比较多且存在一定的分组分类的关系,所以想能比较清晰的维护这些变量。今晚有空,简单研究了一下,分享出来,供大家讨论。
可供考虑的分类方式
/**
* 枚举接口
*
* @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
}
}
}
调用方式和一些其他测试:
* 测试练习枚举用法
* @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,如需转载请自行联系原作者