天天看點

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,如需轉載請自行聯系原作者