【Java 枚举类型使用小技巧】

最近用到枚举,由于枚举变量比较多且存在一定的分组分类的关系,所以想能比较清晰的维护这些变量。简单研究了一下,分享出来,供大家讨论。

  可供考虑的分类方式

  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.}

  调用方式和win7旗舰版系统下载一些其他测试:

  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行的调用方式。可体现出分组的效果。方法接口参数,统一接受接口类型即可。

posted on 2013-07-30 14:40  潇洒kman  阅读(339)  评论(0编辑  收藏  举报