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

调用方式和一些其他测试:


  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.  

主要是27,28行的调用方式。可体现出分组的效果。方法接口参数,统一接受接口类型即可。




     本文转自mushiqianmeng 51CTO博客,原文链接:http://blog.51cto.com/mushiqianmeng/786140,如需转载请自行联系原作者



上一篇:append和extend的区别


下一篇:android签名相关