枚举类在项目中的具体应用

枚举类在项目中的具体应用

在项目开发的过程中,总会碰到固定的名词的多次使用,比如说目前维护的一个设计师项目中,就会出现多个角色信息:设计师,工长,顾客,工人等等.这些信息是不会进行更改的,所以,为了我们方便调用以及提高代码的阅读性和后期维护性,我们可以使用枚举类来定义这些信息,下面就是这个枚举实例的具体使用:

/**
 * 用户类型枚举
 *
 */
public enum UserType {
	/** 设计师:1 */
	DESIGNER(Short.valueOf("1")) {
		public String getUserType() {
			return "设计师";
		}
	},
	/** 工长:2 */
	FOREMAN(Short.valueOf("2")) {
		public String getUserType() {
			return "工长";
		}
	},
	/** 监理:3 */
	SUPERVISOR(Short.valueOf("3")) {
		public String getUserType() {
			return "监理";
		}
	},
	/** 工人:4 */
	WORKER(Short.valueOf("4")) {
		public String getUserType() {
			return "工人";
		}
	},
	/** 客户:5 */
	CUSTOMER(Short.valueOf("5")) {
		public String getUserType() {
			return "客户";
		}
	},
	/** 材料商:6 */
	MATERIAL_DEALER(Short.valueOf("6")) {
		public String getUserType() {
			return "材料商";
		}
	};

	private UserType(Short key) {
		this.key = key;
	}

	private Short key;

	public Short getKey() {
		return this.key;
	}

	public abstract String getUserType();

	public static UserType getUserType(Short code) {
		for (UserType userType : UserType.values()) {
			if (code.equals((userType.getKey())))
				return userType;
		}
		throw new NoSuchElementException(code.toString());
	}
}

在上面的代码中,首先我们有6个不同的角色信息,为了在代码中方便的使用它们,我们给它们了1-6的标识,但是怎么保证通过UserType.value时对应的值是我们想要的信息呢?这时就需要在枚举类中定义一个抽象方法,返回值是String类型,然后让每一个枚举值提供不同的实现.至于最后这个返回值是UserType的getUserType的方法,它的目的是传入一个short值,根据值去循环判断所有的用户类型,进行匹配,匹配到对应的值后,直接返回userType,再就可以使用string的getUserType的方法,获取对应的文字描述了.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值