《小平工作日志》Java 中 Enum 枚举类型使用大全
2016-03-23 00:00
726 查看
摘要: 以下使用方法,需要在JDK1.5以上。
如果后续增加其他使用枚举的地方,会一直更新。
一、定义常量使用
1. 简单常量
上面这一种是:使用enum作为常量的最简的一种方式,枚举变量即为常量值。
2. 值常量
上面这种是:使用被赋值的枚举作为常量。
3. 使用接口管理枚举常量,可很好的为枚举分组
上面这种是:使用一个接口统一管理枚举常量,按分组来管理。
二、swith方法可使用枚举enum
三、枚举集合的使用
java.util.EnumSet 和 java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的 key是enum类型,而value则可以是任意类型。
三、注意:enum类型不可在继承,因为已经默认继承了java.lang.Enum。enum类的构造器需要是private声明的。
如果后续增加其他使用枚举的地方,会一直更新。
一、定义常量使用
1. 简单常量
public enum Status { /** * 成功,失败,其它 */ SUCCESS, ERROR, OTHER } /** * 测试与使用 */ public class Test{ public static void main(String[] args){ System.out.println(Status.SUCCESS);// 输出:SUCCESS System.out.println(Status.ERROR);// 输出:ERROR System.out.println(Status.OTHER);// 输入:OTHER } }
上面这一种是:使用enum作为常量的最简的一种方式,枚举变量即为常量值。
2. 值常量
// 也可以给枚举赋值。 public enum Status { /** * 成功,失败,其它 */ SUCCESS(1), ERROR(2), OTHER(3);// 注意:如果要在这个类里面写其它方法,最后一个枚举量那里必须加上 括号时面的<;>。 /** * 这里要注意: 1.构造器,必须是private私有的。 * 2. 想要为枚举变量赋什么类型的值,这里构造器就传什么类型的参数。 * 只限基本类型 以及String类型。 * 此例拿int类型作介绍。 */ private int value; private Status(int value){ this.value= value; } } /** * 测试与使用 */ public class Test{ public static void main(String[] args){ System.out.println(Status.SUCCESS);// 输出:SUCCESS System.out.println(Status.ERROR);// 输出:ERROR System.out.println(Status.OTHER);// 输入:OTHER System.out.println(Status.ERROR.getValue());// 输出:2 System.out.println(Status.ERROR.name());// 输出ERROR<这个是java.lang.Enum中的自带方法,默认Status继承java.lang.Enum的> } }
上面这种是:使用被赋值的枚举作为常量。
3. 使用接口管理枚举常量,可很好的为枚举分组
/** * 通过接口统一管理常. 此处以类型作为分组进行管理。 * 也可以自定义分组,支持多类型,有多少个类型,就有多少个构造器即可。 */ public interface AllConstants { /** * 值为int类型的 */ enum IntConstants implements AllConstants { YES(1), NO(2); private int value; private IntConstants(int value) { this.value = value; } public int getValue() { return this.value; } } /** * 值为String类型的 */ enum StringConstants implements AllConstants { YES("one"), NO("two"); private String value; private StringConstants(String value) { this.value = value; } public String getValue() { return this.value; } } } /** * 测试与使用 */ public class Test{ public static void main(String[] args){ System.out.println(AllConstants.IntConstants.YES);// 输出:YES System.out.println(AllConstants.IntConstants.YES.getValue());// 输出:1 System.out.println(AllConstants.StringConstants.YES);// 输出:YES System.out.println(AllConstants.StringConstants.YES.getValue());// 输出:one } }
上面这种是:使用一个接口统一管理枚举常量,按分组来管理。
二、swith方法可使用枚举enum
public enum Status{ /** * 成功,失败,其它 */ SUCCESS, ERROR, OTHER } /** * 测试与使用 */ public class Test{ public void testSwith(){ Status param= Status.SUCCESS; switch (param) { case SUCCESS: System.out.println("值为:SUCCESS");// 这一句会输出。 break; case ERROR: System.out.println("值为:ERROR"); break; case OTHER: System.out.println("值为:OTHER"); break; default: break; } } }
三、枚举集合的使用
java.util.EnumSet 和 java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的 key是enum类型,而value则可以是任意类型。
/** * EnumSet的使用方法 */ public class Test { public static void main(String[] args) { EnumSet<Status> enumSet = EnumSet.allOf(Status.class); for (Status status : enumSet) { System.out.println(status.name());// 值 System.out.println(status.ordinal());// 顺序 } } } /** * EnumSet的使用方法 */ public class Test { public static void main(String[] args) { EnumMap<Status, String> enumMap = new EnumMap<Status, String>( Status.class); enumMap.put(Status.SUCCESS, "成功"); enumMap.put(Status.ERROR, "绿灯"); enumMap.put(Status.OTHER, "其它"); // 2.遍历对象 for (Status status : Status.values()) { System.out.println("[key=" + status.name() + ",value=" + enumMap.get(status) + "]"); } } }
三、注意:enum类型不可在继承,因为已经默认继承了java.lang.Enum。enum类的构造器需要是private声明的。
相关文章推荐
- maven struts--Could not find action or result的解决方案
- 本公司求购一套进销存系统(java版)
- Spring的IOC和AOP
- Java基础复习-----集合Vector
- Java基础-----集合工具类Collections
- 万年历的编写(java)
- eclipse 打开文件所在文件夹插件OpenExplorer
- Java中HashMap和HashTable区别
- maven 下载 按装 Eclipse配置
- Java四种线程池的使用
- 非常重要 却被世人忽略的Java基础知识
- Spring AOP实现原理
- 初探Java字符串
- Spring之AOP
- 由数据库的隔离级别到spring对数据库的事物控制
- java并发基础知识
- Map to bean的一个java实现
- java注解小实例
- String in java
- final in java