赞
踩
jdk1.5以后,为了表示一些固定的值,产生了枚举;枚举是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内
第一种 ,无参格式
public enum s {
枚举项1,
枚举项2,
枚举项3;
}
第二种 ,有参格式
public enum s {
枚举项1("1"),
枚举项2("2"),
枚举项3("3");
private String id;
//为了方便查看已省略无参和有参构造,getset方法
//大家自己写的时候一定要加上哦!
}
注意事项
要求:定义一个枚举用来表示全人类固定的类别:男、女,变性人。
//枚举 public enum PersonEnum { 男, 女, 变性人; } //用法 class Test{ public static void main(String[] args) { //获取枚举名称,枚举名称返回的都是枚举的实例对象,所以不能直接使用 //1.固定写法:枚举对象.枚举项名称 PersonEnum 男 = PersonEnum.男; Assert.assertEquals(男.name(),"男");//true //2.valueOf PersonEnum 男2 = PersonEnum.valueOf("男"); Assert.assertEquals(男2.name(),"男");//true //3.values PersonEnum[] values = PersonEnum.values(); List<String> personCategoryList = Arrays.stream(values).map(value->value.name()).collect(Collectors.toList()); System.out.println("personCategoryList = " + personCategoryList );//[男, 女, 变性人] //获取枚举值 无 } }
//枚举
public class Person {
public static final Person 男=new Person();
public static final Person 女=new Person();
public static final Person 变形人=new Person();
}
//用法
class Test{
public static void main(String[] args) {
//获取枚举名称 无
//获取枚举值 无
}
}
要求:定义一个枚举用来表示部分江苏地区如南京、常州,苏州的邮政编码
//枚举 public enum JsCodeEnum { 南京("210000"), 常州("213000"), 苏州("215000"); private String code; //为了方便查看已省略无参和有参构造,getset方法 //大家自己写的时候一定要加上哦! } //用法 class Test{ public static void main(String[] args) { //获取枚举名称,枚举名称返回的都是枚举的实例对象,所以不能直接使用 //1.固定写法:枚举对象.枚举项名称 JsCodeEnum 南京 = JsCodeEnum.南京; Assert.assertEquals(南京.name(),"南京");//true //2.valueOf JsCodeEnum 南京2 = JsCodeEnum.valueOf("南京"); Assert.assertEquals(南京2.name(),"南京");//true //3.values JsCodeEnum[] values = JsCodeEnum.values(); List<String> areaList= Arrays.stream(values).map(value->value.name()).collect(Collectors.toList()); System.out.println("areaList = " + areaList);//[南京, 常州, 苏州] //获取枚举值 //1.实例化的枚举对象直接get对应的属性名 String code = 南京.getCode(); Assert.assertEquals(code,"210000");//true //2.values 获取所有的值 List<String> codeList = Arrays.stream(values).map(value->value.getCode()).collect(Collectors.toList()); System.out.println("codeList = " + codeList);//[210000, 213000, 215000] } }
//枚举 public class JsCode { private String code; public static final JsCode 南京=new JsCode("210000"); public static final JsCode 常州=new JsCode("213000"); public static final JsCode 苏州=new JsCode("215000"); //为了方便查看已省略无参和有参构造,getset方法 //大家自己写的时候一定要加上哦! } //用法 class Test{ public static void main(String[] args) { //获取枚举名称 无 //获取枚举值 JsCode 南京 = JsCode.南京; String code = 南京.getCode(); Assert.assertEquals(code,"210000");//true } }
枚举可以使代码看起来整洁。项目中最忌讳的就是出现一些死数据,而枚举是死数据的聚集地,只管用。
枚举在项目中的应用是为了方便维护一些固定数据。比如上述的地区邮政编码,这些数据国家一般是不会变化的,所以我们在处理的时候有两种选择:一种是写在配置文件中,第二种就是使用枚举。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。