巴拉巴拉
小魔仙

Java Enum 枚举型 简单用法

JDK1.5之后Java添加了Enum枚举型,一般情况下可以用来保证一组定义好的数据常量,比如日期,时间,颜色,状态等情况,同时也可以利用Enum来实现单例。
这里简单的实现一些Enum的操作方法和实现。

首先自己定义了一个Enum

public enum MyEnum {
	One("A", 1), Two("B", 2), Three("C", 3);
	private String key;
	int value;

	private MyEnum(String key, int value) {
		this.key = key;
		this.value = value;
	}

	/**
	 * 根据Key的值获取到第一个匹配的Enum
	 */
	public static MyEnum getByKey(String key) {
		for (MyEnum e : values()) {
			if (e.key.equals(key))
				return e;
		}
		return null;
	}

	public String getKey() {
		return key;
	}

	public void setKey(String key) {
		this.key = key;
	}

	public int getValue() {
		return value;
	}

	public void setValue(int value) {
		this.value = value;
	}

}

 

现在我们来测试一下Enum的一些使用方法

Enum<MyEnum> e = MyEnum.One;
System.out.println("Enum<MyEnum>		: " + e);

//获取该Enum定义的Name值
System.out.println("MyEnum.One.name		: " + MyEnum.One.name());
//定义的Enum,Key设置为了private,通过public的getKey方法获取key的值
System.out.println("MyEnum.One.getKey	: " + MyEnum.One.getKey());
//定义的Enum,value设置为了public,直接通过value方式获取value值
System.out.println("MyEnum.One.value	: " + MyEnum.One.value);
//获取指定的Enum在序列中排第n个,排序从0开始
System.out.println("MyEnum.One.ordinal	: " + MyEnum.One.ordinal());
/*
 * 在enum中定义一个public static 的方法,
 * 可以根据Key的值获取到第一个匹配的Enum
 */
System.out.println("MyEnum.getByKey		: " + MyEnum.getByKey("A"));
//Enum自带方法,根据Name值获取指定的Enum
System.out.println("MyEnum.valueOf		: " + MyEnum.valueOf("One"));
//Enum自带方法,根据Name值获取指定定义的Enum
System.out.println("MyEnum.valueOf		: " + Enum.valueOf(MyEnum.class, "One"));

运行之后查看一下Console控制台

Enum<MyEnum>		: One
MyEnum.One.name		: One
MyEnum.One.getKey	: A
MyEnum.One.value	: 1
MyEnum.One.ordinal	: 0
MyEnum.getByKey		: One
MyEnum.valueOf		: One
MyEnum.valueOf		: One

/_//_//_//_//_//_//_//_//_//_//_//_//_//_//_//_//_//_//_//_//_//_//_/

JSP中使用Enum遍历

package com.againfly.enumpack;

public enum TypeEnum {
	DVR("DVR"), NVR("NVR");
	private String value;;

	private HostTypeEnum(String value) {
		this.value = value;
	}

	public String getValue() {
		return value;
	}
}
<c:set var="types" value="<%= com.againfly.enumpack.TypeEnum.values() %>"/>
<c:forEach var="type" items="${types}">
	<option value="${type.name()}" >${type.value}</option>
</c:forEach>

 

赞(0) 打赏
如果文章对你有帮助,欢迎你来评价反馈。AgainFly » Java Enum 枚举型 简单用法

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  • Q Q(选填)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏