天天看点

Java 枚举类型使用小技巧

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

可供考虑的分类方式

/** 

 * 枚举接口 

 *  

 * @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,如需转载请自行联系原作者