Java中枚舉的寫法和用法
在公司代碼中,用了一大堆的枚舉,看得我好懵逼。下面開始看看枚舉怎么寫和怎么用。
一、枚舉的寫法
關於枚舉的寫法,網上好多這方面的知識。這里直接貼一個我自己寫的枚舉類的代碼。
(1)代碼片段一
package com.tomtop.application.libraries.constentEnum; /** * 包材領用狀態枚舉類 * @author zeng.xiao.yan * @date Jun 5, 2017 1:04:40 PM * @version V1.0 */ public enum UseStatusEnum { PACKING_NOT_USE(1), // 未領用 PACKING_HAS_USED(2), // 已領用 PACKING_BACK_USE(3); // 已打回 private Integer useStatus; private UseStatusEnum(int useStatus) { this.useStatus = useStatus; } public Integer getUseStatus() { return useStatus; } }
(2)代碼片段二
package com.tomtop.application.libraries.constentEnum; /** * b2b發票狀態枚舉類 * @author ZENG.XIAO.YAN * @date Aug 11, 2017 9:32:04 AM * @version V1.0 * @qq 1927 */ public enum B2bInvoiceStatusEnum { /** 待開票 */ WAIT_MAKE_INVOICE(10,"待開票"), /** 待關務審核發票 */ WAIT_CUSTOMS_AUDIT_INVOICE(20,"待關務審核發票"), /** 待財務審核發票 */ WAIT_FINANCIAL_AUDIT_INVOICE(30,"待財務審核發票"), /** 待財務認證發票 */ WAIT_FINANCIAL_AUTHENTICATION_INVOICE(40,"待財務認證發票"), /** 待稅局退稅 */ WAIT_TAX_STATION_TAX_REIMBURSEMENT(50,"待稅局退稅"), /** 不可退稅 */ CAN_NOT_TAX_REIMBURSEMENT(60,"不可退稅"), /** 已退稅 */ HAS_TAX_REIMBURSEMENT(70,"已退稅"); private Integer status; private String text; //構造方法 private B2bInvoiceStatusEnum(Integer status,String text ){ this.status = status; this.text = text; } public Integer getStatus() { return status; } public String getText() { return text; } }
二、枚舉類在代碼中的用法
(1)代碼片段一
// 枚舉使用案例01 productPackingRecord.setUseStatus(UseStatusEnum.PACKING_NOT_USE.getUseStatus()); //設為未領用狀態
注意:這里調用getUseStatus這個方法才能返回枚舉常量的值。
(2)代碼片段二
// 枚舉使用案例02 public Map<String,String> getOptions(){ Map<String,String> options = new LinkedHashMap<>(); B2bInvoiceStatusEnum[] statusEnums = B2bInvoiceStatusEnum.values(); // 獲得枚舉對象數組 // 遍歷枚舉對象 for (B2bInvoiceStatusEnum b2bInvoiceStatusEnum : statusEnums) { // eg:put("10","待開票") options.put(b2bInvoiceStatusEnum.getStatus().toString(), b2bInvoiceStatusEnum.getText()); } return options; } // 枚舉使用案例03 /** (3)保存發票,發票狀態設為'待關務部審核發票' */ invoiceInfo.setStatus(B2bInvoiceStatusEnum.WAIT_CUSTOMS_AUDIT_INVOICE.getStatus()); session.save(invoiceInfo);
未完待續。。。。。。。。
