Java 中枚举类型的使用

  大家在做项目的时候,总会涉及到一些系统常量需要定义,很可能大家会这样写: 
Java代码   收藏代码
  1. package mytest;  
  2. public class Simple {  
  3.     public static final int INT_EXP_STATUS_UNSUBMIT = 1;//报销状态-未提交状态  
  4.     public static final int INT_EXP_STATUS_SUBMITTED = 2;//报销状态-已提交状态  
  5.     public static final int INT_EXP_STATUS_VERIFYUNPASS = 3;//报销状态-未审核状态  
  6.     public static final int INT_EXP_STATUS_VERIFYPASS = 4;//报销状态-已审核状态  
  7.       
  8.     public static final String STRING_FULLTIEM_EMP = "正式员工";//员工类型-正式员工  
  9.     public static final String STRING_TRAINEE_EMP = "实习生";//员工类型-实习生  
  10.     public static final String STRING_PARTTIME_EMP = "兼职/劳务";//员工类型-兼职/劳务  
  11.       
  12. }  


     在实际应用过程当中可以使用类名+属性名来进行常量引用,比如我们要获取未提交的报销状态时,可以这样写: 
Java代码   收藏代码
  1. Simple.INT_EXP_STATUS_SUBMITTED;  

     咱们现在可以使用Java中的枚举类型来进行常量的定义。上面的例子如果用枚举类可以写成: 
Java代码   收藏代码
  1. package mytest;  
  2. public enum Myenum {      
  3.     //枚举常量必须要写在类开始的位置,不然会报错  
  4.     INT_EXP_STATUS_UNSUBMIT(1), //报销状态-未提交状态  
  5.     INT_EXP_STATUS_SUBMITTED(2),//报销状态-已提交状态  
  6.     INT_EXP_STATUS_VERIFYUNPASS(3),//报销状态-未审核状态  
  7.     INT_EXP_STATUS_VERIFYPASS(4),//报销状态-已审核状态  
  8.       
  9.     STRING_FULLTIEM_EMP("正式员工"),//员工类型-正式员工  
  10.     STRING_TRAINEE_EMP("实习生"),//员工类型-实习生  
  11.     STRING_PARTTIME_EMP("兼职/劳务");//员工类型-兼职/劳务  
  12.       
  13.      private String stringValue;  
  14.      private int intVlue;  
  15.        
  16.      //构造函数必须为private的,防止意外调用  
  17.      private Myenum(String stringValue){  
  18.          this.stringValue = stringValue;  
  19.      }  
  20.        
  21.      //构造函数必须为private的,防止意外调用  
  22.      private Myenum(int intVlue){  
  23.          this.intVlue = intVlue;  
  24.      }  
  25.   
  26.     public String getStringValue() {  
  27.         return stringValue;  
  28.     }  
  29.   
  30.     public int getIntVlue() {  
  31.         return intVlue;  
  32.     }  
  33. }  

在实际应用过程当中可以使用类名+属性名+调用方法来进行常量引用,比如我们要获取未提交的报销状态时,可以这样写: 
Java代码   收藏代码
  1. Myenum.INT_EXP_STATUS_SUBMITTED.getIntVlue()  


可能大家会问这两种写法会有什么区别?或者说使用java的枚举类型有什么好处或者优点呢?现在我来具体枚举一下枚举类型的特点: 
1、可列性; 
2、常量性; 
3、强类型; 
4、类的特性. 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值