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/qiyueqinglian/article/details/50738548
 
 
 

 未完待续。。。。。。。。
原文地址:https://www.cnblogs.com/zeng1994/p/7397582.html