Java中枚举的写法和用法

Posted zeng1994

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中枚举的写法和用法相关的知识,希望对你有一定的参考价值。

        在公司代码中,用了一大堆的枚举,看得我好懵逼。下面开始看看枚举怎么写和怎么用。

一、枚举的写法

        关于枚举的写法,网上好多这方面的知识。这里直接贴一个我自己写的枚举类的代码。
(1)代码片段一
  1. package com.tomtop.application.libraries.constentEnum;
  2. /**
  3. * 包材领用状态枚举类
  4. * @author zeng.xiao.yan
  5. * @date Jun 5, 2017 1:04:40 PM
  6. * @version V1.0
  7. */
  8. public enum UseStatusEnum {
  9. PACKING_NOT_USE(1), // 未领用
  10. PACKING_HAS_USED(2), // 已领用
  11. PACKING_BACK_USE(3); // 已打回
  12. private Integer useStatus;
  13. private UseStatusEnum(int useStatus) {
  14. this.useStatus = useStatus;
  15. }
  16. public Integer getUseStatus() {
  17. return useStatus;
  18. }
  19. }

(2)代码片段二
  1. package com.tomtop.application.libraries.constentEnum;
  2. /**
  3. * b2b发票状态枚举类
  4. * @author ZENG.XIAO.YAN
  5. * @date Aug 11, 2017 9:32:04 AM
  6. * @version V1.0
  7. * @qq 1927
  8. */
  9. public enum B2bInvoiceStatusEnum {
  10. /** 待开票 */
  11. WAIT_MAKE_INVOICE(10,"待开票"),
  12. /** 待关务审核发票 */
  13. WAIT_CUSTOMS_AUDIT_INVOICE(20,"待关务审核发票"),
  14. /** 待财务审核发票 */
  15. WAIT_FINANCIAL_AUDIT_INVOICE(30,"待财务审核发票"),
  16. /** 待财务认证发票 */
  17. WAIT_FINANCIAL_AUTHENTICATION_INVOICE(40,"待财务认证发票"),
  18. /** 待税局退税 */
  19. WAIT_TAX_STATION_TAX_REIMBURSEMENT(50,"待税局退税"),
  20. /** 不可退税 */
  21. CAN_NOT_TAX_REIMBURSEMENT(60,"不可退税"),
  22. /** 已退税 */
  23. HAS_TAX_REIMBURSEMENT(70,"已退税");
  24. private Integer status;
  25. private String text;
  26. //构造方法
  27. private B2bInvoiceStatusEnum(Integer status,String text ){
  28. this.status = status;
  29. this.text = text;
  30. }
  31. public Integer getStatus() {
  32. return status;
  33. }
  34. public String getText() {
  35. return text;
  36. }
  37. }

二、枚举类在代码中的用法

(1)代码片段一
  1. // 枚举使用案例01
  2. productPackingRecord.setUseStatus(UseStatusEnum.PACKING_NOT_USE.getUseStatus()); //设为未领用状态
            注意:这里调用getUseStatus这个方法才能返回枚举常量的值。
(2)代码片段二
  1. // 枚举使用案例02
  2. public Map<String,String> getOptions(){
  3. Map<String,String> options = new LinkedHashMap<>();
  4. B2bInvoiceStatusEnum[] statusEnums = B2bInvoiceStatusEnum.values(); // 获得枚举对象数组
  5. // 遍历枚举对象
  6. for (B2bInvoiceStatusEnum b2bInvoiceStatusEnum : statusEnums) {
  7. // eg:put("10","待开票")
  8. options.put(b2bInvoiceStatusEnum.getStatus().toString(), b2bInvoiceStatusEnum.getText());
  9. }
  10. return options;
  11. }
  12. // 枚举使用案例03
  13. /** (3)保存发票,发票状态设为‘待关务部审核发票‘ */
  14. invoiceInfo.setStatus(B2bInvoiceStatusEnum.WAIT_CUSTOMS_AUDIT_INVOICE.getStatus());
  15. session.save(invoiceInfo);

                              http://blog.csdn.net/qiyueqinglian/article/details/50738548




 未完待续。。。。。。。。










以上是关于Java中枚举的写法和用法的主要内容,如果未能解决你的问题,请参考以下文章

java枚举类型

java枚举类型

java枚举

java枚举

enum在java中是啥意思

Enum枚举学习- java5之前和之后的写法