枚举代码:
package com.laoxu.enumeration.Test;
import lombok.Getter;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* 枚举示例
*/
public enum Enumeration {
;
/********************
* 方式一:简单模式 *
********************/
//固定常量
public static final String CLOSE = "0";
public static final String OPEN = "1";
public static final int SEND_FAIL = 1;
public static final int SEND_SUCCESS =0;
public static final TimeUnit DEFAULT_TIME_UNIT = TimeUnit.HOURS;
public static final Integer UNSTOP = 0;
public static final Integer STOP = 1;
//固定列表
public static List<Integer> MONTH= Arrays.asList(1,2,3,5,6,7,8,9,10,11,12);
/********************
* 方式二:级联模式 *
********************/
public enum STATUS {
;
/**
* 待支付
*/
public static final String TO_BE_PAID = "1";
/**
* 已购买
*/
public static final String ALREADY_PURCHASED = "2";
/**
* 支付超时
*/
public static final String PAYMENT_TIMEOUT = "3";
/**
* 发起退款
*/
public static final String INITIATE_A_REFUND = "13";
/**
* 已退款
*/
public static final String REFUNDED = "14";
/**
* 拒绝退款
*/
public static final String REFUSAL_OF_REFUND = "15";
}
/********************
* 方式三:枚举类 *
********************/
//商品为例
public enum Goods{
PENCEIL(1, "铅笔", "15.00", "能写出字"),
NOTEBOOK(2, "本子", "30.00", "记笔记"),
ERASER(3, "橡皮擦", "20.00", "擦除");
@Getter
private Integer id;
@Getter
private String goodsName;
@Getter
private String goodsPrice;
@Getter
private String goodsDescription;
Goods(Integer id, String goodsName, String goodsPrice, String goodsDescription){
this.id = id;
this.goodsName = goodsName;
this.goodsPrice = goodsPrice;
this.goodsDescription = goodsDescription;
}
//根据id获取枚举
public static Enumeration.Goods getGoods(Integer category) {
Enumeration.Goods[] values = values();
return Arrays.stream(values).filter(e -> e.id.equals(category)).findFirst().orElse(null);
}
}
}
使用枚举:
package com.laoxu.enumeration.Test;
public class test {
public static void main(String[] args) {
method1();
method2();
method3();
}
//方式一
public static void method1(){
System.out.println(Enumeration.CLOSE);
System.out.println(Enumeration.OPEN);
System.out.println(Enumeration.SEND_SUCCESS);
System.out.println(Enumeration.SEND_FAIL);
System.out.println(Enumeration.DEFAULT_TIME_UNIT);
System.out.println(Enumeration.UNSTOP);
System.out.println(Enumeration.STOP);
System.out.println(Enumeration.MONTH);
}
//方式二
public static void method2(){
System.out.println(Enumeration.STATUS.TO_BE_PAID);
System.out.println(Enumeration.STATUS.ALREADY_PURCHASED);
System.out.println(Enumeration.STATUS.PAYMENT_TIMEOUT);
System.out.println(Enumeration.STATUS.INITIATE_A_REFUND);
System.out.println(Enumeration.STATUS.REFUNDED);
System.out.println(Enumeration.STATUS.REFUSAL_OF_REFUND);
}
//方式三
public static void method3(){
System.out.println(Enumeration.Goods.PENCEIL);
System.out.println(Enumeration.Goods.PENCEIL.getId());
System.out.println(Enumeration.Goods.PENCEIL.getGoodsName());
System.out.println(Enumeration.Goods.PENCEIL.getGoodsPrice());
System.out.println(Enumeration.Goods.PENCEIL.getGoodsDescription());
System.out.println(Enumeration.Goods.NOTEBOOK);
System.out.println(Enumeration.Goods.NOTEBOOK.getId());
System.out.println(Enumeration.Goods.NOTEBOOK.getGoodsName());
System.out.println(Enumeration.Goods.NOTEBOOK.getGoodsPrice());
System.out.println(Enumeration.Goods.NOTEBOOK.getGoodsDescription());
System.out.println(Enumeration.Goods.ERASER);
System.out.println(Enumeration.Goods.ERASER.getId());
System.out.println(Enumeration.Goods.ERASER.getGoodsName());
System.out.println(Enumeration.Goods.ERASER.getGoodsPrice());
System.out.println(Enumeration.Goods.ERASER.getGoodsDescription());
System.out.println(Enumeration.Goods.getGoods(1));
}
}