自定义枚举 类,用于放一些常量;用于数据库指定指定存放相应的数据规范

数据库有个字段,是状态;之前的做法是:

  1. 在DAO里申明了一堆的常量(英文的,用于存放入数据库);
  2. 在bean里写了个方法,将数据库读取的英文,转义为中文,采用switch方法;
  3. 问题 : 又臭又长 , 又不能很好的遍历常量;

今天采用枚举enum改造了下:

  1. 自定义一个enum类,类型为中文 + 数字下标;
  2. 中文用于前端显示,数字下标用于存入数据库;
  3. 优点 : 易维护,数据库也更清爽了;

自定义枚举类代码大致如下:

package TestEnum;

public enum StatusType {

	waitPay("待付款", 1), waitDelivery("待发货", 2), waitConfirm("待收货", 3), waitReview("待评价", 4), finish("完成", 5),
	delete("刪除", 6);

	private String name; // 对应String的"代付款";
	private int index; // 对应int的"1";

	// 构造方法
	private StatusType(String name, int index) {
		this.name = name;
		this.index = index;
	}

	// 根据indx获取name;
	public static String getName(int index) {
		for (StatusType type : StatusType.values()) {
			if (type.getIndex() == index) {
				return type.name;
			}
		}
		return "未知";
	}

	// 根据name获取index
	public static int getIndex(String name) {

		for (StatusType type : StatusType.values()) {
			if (type.getName().equals(name)) {
				return type.index;
			}
		}
		return -1;

	}

	// 判断name是否存在的方法;
	public static boolean isExist(String name) {
		if (null != name)
			for (StatusType type : StatusType.values()) {
				if (type.getName().equals(name)) {
					return true;
				}
			}
		return false;
	}

// 判断index是否存在的方法;
	public static boolean isExist(int index) {
		if (-1 != index)
			for (StatusType type : StatusType.values()) {
				if (index == type.getIndex()) {
					return true;
				}
			}
		return false;
	}

	// get和set
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getIndex() {
		return index;
	}

	public void setIndex(int index) {
		this.index = index;
	}

	public static void main(String[] args) {

		System.out.println(StatusType.getName(1));// 待付款
		System.out.println(StatusType.getName(10));// 未知
//		System.out.println(StatusType.getName(null));// 编译时错误,int类型不能为null

		System.out.println();
		System.out.println(StatusType.getIndex("待收货")); // 3
		System.out.println(StatusType.getIndex("未知")); // -1
		System.out.println(StatusType.getIndex(null)); // -1,不会抛异常;

		System.out.println();
		System.out.println(StatusType.isExist("jiup"));// false
		System.out.println(StatusType.isExist(null));// false
		System.out.println(StatusType.isExist(100));// false
		System.out.println(StatusType.isExist(-1));// false

//		System.out.println(StatusType.waitConfirm.index); // 3
//		System.out.println(StatusType.waitConfirm.name); // 待收货

		StatusType st = StatusType.valueOf("delete");
		System.out.println(st.name); // 刪除
		System.out.println(st.index); // 6
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值