java 枚举常见的使用

时间:2020-04-19 22:39:49 类型:JAVA
字号:    

  什么时候想用枚举类型:

  在设计一个java model对象的时候,你需要一些具体的常量字符串之类的东西,这个东西又没必要跟整个项目的全局常量放在一起,就放在model的java文件里面是最合适的,那么,你可以有两种选择:

  1,在java model文件里面,定义public final static XXXX = "" ;

  这种就是全局静态变量,通过类名就可以直接访问。

  2,还是在java model 文件里面,定义个枚举类型 public enum XXXX{a,b,c,d,e,f};

  什么时候,如何使用:

  当在和前台传过来的数据或者在逻辑操作的代码里面需要去用到这个常量值去做比较的时候,就是使用枚举类型的时候。

  一般形式是: 类名.枚举类型名.单个枚举类型

  用上面的例子(假设在一个叫A的model java文件里面),

  则为A.XXXX.a.toString();

  就可以这么使用了。

  怎么循环一个枚举类型。

  枚举有一个方法,values(),

  使用形式如: int length = XXXX.values().length

  返回的是一个类型与枚举类型一致的数组。

  然后就可以循环这个数组。

  就是循环枚举类型了。

public class Meiju{
	public enum Weekends{MON, TUE, WED, THU, FRI, SAT, SUN;}
	public static void main(String[] args){
		//循环方法一
		for(Weekends e:Weekends.values()){
			System.out.println(e);
		}
		//循环方法二
		for(int i=0;i<Weekends.values().length;i++){
			System.out.println(Weekends.values()[i]);
		}
	}
}

在枚举类型中添加构造方法

public class EnumTest
{
	enum Weekends
	{
		MON(1, "星期一"), TUE(2, "星期二"), WED(3, "星期三");
 		
		private final int value;
		private final String description;
 
		private Weekends(int value, String description)
		{
			this.value = value;
			this.description = description;
		}
 
		public int getValue()
		{
			return this.value;
		}
 
		public String getDescription()
		{
			return this.description;
		}
 
		public static Weekends valueOf(int value)
		{
			switch (value)
			{
				case 1:
					return Weekends.MON;
				case 2:
					return Weekends.TUE;
				case 3:
					return Weekends.WED;
				default:
					return null;
			}
		}
	}
 
	public static void main(String[] args)
	{
		for (Weekends w : Weekends.values())
		{
			System.out.println("枚举成员:" + w + " 值:" + w.getValue() + "    描述:" + w.getDescription());
		}
 
		System.out.println("值转换成枚举:" + Weekends.valueOf(2));
		System.out.println("字符串转换成枚举:" + Weekends.valueOf("TUE"));
	}
}

结果如下:

枚举成员:MON 值:1    描述:星期一

枚举成员:TUE 值:2    描述:星期二

枚举成员:WED 值:3    描述:星期三

值转换成枚举:TUE

字符串转换成枚举:TUE


<