Java中枚舉的寫法和用法


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);
            參考鏈接: http://blog.csdn.net/u014527058/article/details/52751488
                              http://blog.csdn.net/qiyueqinglian/article/details/50738548
 
 
 

 未完待續。。。。。。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM