Java中枚举的写法和用法
Posted zeng1994
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
未完待续。。。。。。。。
以上是关于Java中枚举的写法和用法的主要内容,如果未能解决你的问题,请参考以下文章