java枚举类型enum的使用实例,以及java程序中常量有什么用?

来源:互联网 发布:好看的古代小说知乎 编辑:程序博客网 时间:2024/05/21 04:01

问:枚举有有什么用?

答:定义常量,作用和jfinal一样,用来定义固定值的变量,即常量变量。

java程序,为什么要定义常量,常量有什么用?

引入常量,是为了:

1)直接调用即可,不用每次都输入“telNum”。

2)便于代码的可读性,如果你在程序中输入“telNum”别人不明白是什么,你固定写到某个位置,大家一看就明白了。

3)也方便查看,常量就像是一个数据字典(0是待提交 1已提交 2已审核等等)一样,各数值代表什么意思,一目了然。

5)也可以防止别写程序时将“telNum”敲错,因为使用"对象名.成员变量名"输入“.”的时候会有可能代码提示,选择即可,这样是不可能出错的。

6)增加程序的可读性,可维护性,如果直接在代码中写入Db.set("current_status","1");没有人会明白,如果将这些状态位通过变量在某个类中通过jfinal 进行维护或者在枚举类中维护,程序只是调取Db.set("current_status",CurrentStatus.CURRENT_STATUS_0);即可。


如jf工程中,如下的用法
public class ProjectContants {public static String CURRENT_USER = "CURRENT_USER";public static String CURRENT_ORGAN = "CURRENT_ORGAN";public static String CURRENT_PROJECT = "CURRENT_PROJECT";public static String RANDOM_IMAGE_CODE="RANDOM_IMAGE_CODE";}

总结:

所以,变量最大的用处就是为了消除,java程序中,“某些状态位,外人完全不明白什么意思,”

如下:



==================================java枚举类型enum的使用实例==================================

http://blog.csdn.net/ahgaojie451/article/details/45362053

Java枚举类型enum的使用

        java中定义常量有两种方法:final关键字和enum枚举Java中的枚举类型采用关键字enum来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum类型。要了解枚举类型,建议大家先打开jdk中的Enum类简单读一下,这个类里面定义了很多protected方法,比如构造函数,如果要使用这些方法我们可以把枚举类型定义到当前类中。每个枚举类型,都有自己的名字和顺序,当我们输出一个枚举类型的时候,会输入枚举类型的name,具体可以参考下面的例子。


[java] view plain copy
  1. public enum OperationType {  
  2.   
  3.     ADD_KEYWORD("add_keyword@resource""KEYWORD"),  
  4.     ADD_START_KEYWORD("add_start_keyword@resource""KEYWORD"),  
  5.     ADD_STOP_KEYWORD("add_stop_keyword@resource""KEYWORD"),  
  6.     DELETE_KEYWORD("delete_keyword@resource""KEYWORD"),  
  7.     ADD_REC_TO_RECYCLE("add_rec_to_recycle@resource""KEYWORD"),  
  8.     STOP_KEYWORD("stop_keyword@resource""KEYWORD"),  
  9.     STOP_ALL_KEYWORD("stop_all_keyword@resource""KEYWORD"),  
  10.     START_KEYWORD("start_keyword@resource""KEYWORD"),  
  11.     START_ALL_KEYWORD("start_all_keyword@resource""KEYWORD"),  
  12.     BID_KEYWORD("bid_keyword@resource""KEYWORD"),  
  13.     MODIFY_BID_KEYWORD("modify_bid_keyword@resource""KEYWORD"),  
  14.     MODIFY_ADD_KEYWORD("modify_add_keyword@resource""KEYWORD"),  
  15.     MODIFY_SUB_KEYWORD("modify_sub_keyword@resource""KEYWORD"),  
  16.     MODIFY_KEYWORD_TAG("modify_keyword_tag@resource""KEYWORD"),  
  17.     CANCEL_KEYWORD_TAG("cancel_keyword_tag@resource""KEYWORD"),  
  18.     SET_PREFERENTIAL_PRODUCT("set_preferential_product@resource""KEYWORD"),  
  19.     CANCEL_PREFERENTIAL_PRODUCT("cancel_preferential_product@resource""KEYWORD"),  
  20.     SET_ADMATCH("set_admatch@resource""KEYWORD"),  
  21.     CANCEL_ADMATCH("cancel_admatch@resource""KEYWORD"),  
  22.     MODIFY_COST_LIMIT("modify_cost_limit@resource""ACCOUNT"),  
  23.     MODIFY_BALANCE_ALERT_AMOUNT("modify_balance_alert_amount@resource""ACCOUNT"),  
  24.     MODIFY_BALANCE_ALERT_EMAIL("modify_balance_alert_email@resource""ACCOUNT"),  
  25.     MODIFY_BALANCE_ALERT_PHONE("modify_balance_alert_phone@resource""ACCOUNT"),  
  26.     ACCEPT_AGREEMENT("accept_agreement@resource""ACCOUNT"),  
  27.     START_ACCOUNTS_TATUS("start_account_status@resource""ACCOUNT"),  
  28.     STOP_ACCOUNT_STATUS("stop_account_status@resource""ACCOUNT"),  
  29.     SETTING_ACCOUNT_LANGUAGE("setting_account_language@resource""ACCOUNT"),  
  30.     CANCEL_ACCOUNT_LANGUAGE("cancel_account_language@resource""ACCOUNT"),  
  31.     ALLOW_RECOMMEND_KEYWORD("allow_recommend_keyword@resource""ACCOUNT"),  
  32.     DONT_ALLOW_RECOMMEND_KEYWORD("dont_allow_recommend_keyword@resource""ACCOUNT"),  
  33.     UNFREEZE_CUST("unfreeze_cust@resource""ACCOUNT"),  
  34.     ADD_OFFER("add_offer@resource""PRODUCT"),  
  35.     CLEAN_PRODUCT("clean_product@resource""PRODUCT"),  
  36.     DELETE_OFFER("delete_offer@resource""PRODUCT"),  
  37.     ADD_ALL_OFFER("add_all_offer@resource""PRODUCT"),  
  38.     DELETE_ALL_OFFER("delete_all_offer@resource""PRODUCT"),  
  39.     ADD_BEST_MATCH_OFFER("add_best_match_offer@resource""PRODUCT"),  
  40.     CREAT_TAG("create_tag@resource""TAG"),  
  41.     MODIFY_TAG_NAME("modify_tag_name@resource""TAG"),  
  42.     DELETE_TAG("delete_tag@resource""TAG"),  
  43.     INSERT_AUTH_MANAGE("insert_authority@resource""AUTHORITY"),  
  44.     MODIFY_AUTH_MANAGE("modify_authority@resource""AUTHORITY"),  
  45.     CANCEL_AUTH_MANAGE("cancel_authority@resource""AUTHORITY"),  
  46.     START_QUICK_PROMOTION("start_quick_promotion@resource""QUICKPRROMOTION"),  
  47.     STOP_QUICK_PROMOTION("stop_quick_promotion@resource""QUICKPRROMOTION"),  
  48.     UPDATE_QUICK_PRICE("update_quick_price@resource""QUICKPRROMOTION"),  
  49.       
  50.     private OperationType(String resourceKey, String type) {  
  51.         this.resourceKey = resourceKey;  
  52.         this.type = type;  
  53.     }  
  54.   
  55.     private final String resourceKey;  
  56.     private final String type;  
  57.   
  58.     public String getResourceKey() {  
  59.         return resourceKey;  
  60.     }  
  61.   
  62.     public String getType() {  
  63.         return type;  
  64.     }  
  65.   
  66.     public static OperationType getOperationType(String name) {  
  67.         return OperationType.valueOf(name);  
  68.     }  
  69.   
  70. }  

       上面定义了一个java枚举类型的类,构造函数的两个参数很重要,分别对应枚举实例的两个参数。下面的测试代码,可以明确告诉你如何使用java枚举获取对应的信息。


[java] view plain copy
  1. public class Test {  
  2.     public static void main(String[] args) {  
  3.         OperationType operationType = OperationType.getOperationType("ADD_STOP_KEYWORD");  
  4.             System.out.println("operationType.getType():" + operationType.getType());  
  5.             System.out.println("operationType.getResourceKey():" + operationType.getResourceKey());  
  6.     }  
  7. }  


上例的输出结果如下:


[java] view plain copy
  1. <strong>operationType.getType():KEYWORD  
  2. operationType.getResourceKey():add_stop_keyword@resource</strong>  

0 0