之前在早一点的一个项目中用到了Java枚举,今天不知怎么就突然想起来了。自己又试着写了写。
1.首先在Eclipse里创建了一个Java Project;
2.创建了一个Java Enum ,即java 枚举类;
3.创建了一个测试类;
4.查看分析运行结果。
枚举类的创建代码:package com.zwg.EnumTest;
/**
* Java 枚举类 例一
* @author zwg
*
*/
public enum Season {
SPRING(1,"春季"),
SUMMER(2,"夏季"),
AUTUMN(3,"秋季"),
WINTER(4,"冬季");
private final int code;
private final String value;
private Season(int code,String value){
this.code = code;
this.value = value;
}
/**
* 根据编码获取值
* @param code int;
* @return value String;
*/
public static String getEnumValue(int code){
String value = "";
/* Java判断是否是整数 */
// String reg = "^-?\\d+$";
/* 遍历枚举 */
for(Season sea : Season.values()){
if(sea.code == code){
value = sea.value;
}
}
return value;
}
/**
* 根据值获取编码
* @param value String;
* @return code int;
*/
public static int getEnumCode(String value){
int code = 0;
/* Java判断是否只有汉字 */
String reg = "[\\u4e00-\\u9fa5]+";
if(value.matches(reg)){
/* 遍历枚举 */
for(Season sea : Season.values()){
if((sea.value).equals(value)){
code = sea.code;
}
}
}
return code;
}
public static void main(String[] args) {
/* 遍历输出Season */
for(Season sea : Season.values()){
//code 和 value 是sea的属性;
System.out.print(sea.code+"***");
System.out.println(sea.value+"***");
}
System.out.println("***注意上下输出结果的对比***");
for(Season sea : Season.values()){
//name() 和 ordinal() 是枚举类固有的方法;
System.out.print(sea.name()+"***");
System.out.println(sea.ordinal()+"***");
}
}
}
测试类的创建代码:
package com.zwg.EnumTest;
public class TestSeason {
public static void main(String[] args) {
System.out.print("根据值获取编码:冬季对应的枚举编码是-->");
System.out.println(Season.getEnumCode("冬季"));
System.out.print("根据编码获取值:3对应的枚举值是-->");
System.out.println(Season.getEnumValue(3));
}
}
4.查看分析运行结果。
代码如下: