java枚举类enum的使用
来源:互联网 发布:北京理工大学 网络教育 编辑:程序博客网 时间:2024/05/25 08:12
使用有构造方法的枚举类型的时候,通常可能会用到valueOf()方法,根据枚举类型,获取枚举类型的值,比如 String str = MonitorTarget.valueOf(GWCALLCOUNT);
,然后得到str的值是"网关:访问量"
。
valueOf()这个方法是枚举类型隐含自带的,通常也可以Override覆盖 toString方法来完成通过枚举类型获取值的功能。
然而有的情况下还需要从String转化到Enum对象,这个时候可以使用下面的两种fromString()方式。
public enum MonitorTarget { GWCALLCOUNT("网关:访问量"), ASCALLCOUNT("接入机:访问量"), MSCALLCOUNT("微服务:访问量"), DBCALLCOUNT("数据库:访问量"); private String targetName; // 枚举类的构造函数必须要为private,因为不能在枚举类之外在调用构造函数来初始化枚举,枚举的内容在运行时就已经初始化好了,枚举类的内容相当于枚举类的一个个实体 private MonitorTarget(String targetName) { this.targetName = targetName; } public String getTargetName() { return this.targetName; } // 方法一:使用静态map对象,在enum实例化的时候,将各个对象放进map中,然后在需要的时候从map中来取 private static final Map<String, MonitorTarget> stringToEnum = new HashMap<String, MonitorTarget>(); static { // Initialize map from constant name to enum constant for(MonitorTarget mt : values()) { stringToEnum.put(mt.targetName, mt); // 也可以写成 //stringToEnum.put(mt.toString(), mt); //stringToEnum.put(mt.getTargetName(), mt); } } // Returns Blah for string, or null if string is invalid public static MonitorTarget fromString2(String symbol) { return stringToEnum.get(symbol); } // 方法二:在需要的时候循环枚举对象,根据值来匹配,返回枚举对象 public static MonitorTarget fromString(String text) { if (text != null) { for (MonitorTarget b : MonitorTarget.values()) { if (text.equalsIgnoreCase(b.targetName)) { return b; } } } return null; } @Override public String toString() { return this.targetName; }}
0 0
- java enum枚举类的使用
- java枚举类enum的使用
- Java枚举类的基本使用Enum
- java enum枚举的使用
- java 枚举的使用 enum
- java enum枚举的使用
- java枚举enum的使用
- Enum枚举类的使用。
- enum枚举类的使用
- java 使用enum(枚举)
- java的枚举enum的简单使用
- Java Enum 枚举类的使用一例
- java枚举类型enum的使用
- Java枚举类型enum的使用原理
- java枚举类型enum的使用
- java中Enum(枚举)的使用
- java中枚举enum的使用
- java enum枚举的基本使用
- Gradle xxx project refresh failed,Minimum supported Gradle的问题
- git hub的GUI软件配置与使用
- xml数据的获取和处理
- sed 命令的使用
- 配置pch文件及 pch/plist文件介绍
- java枚举类enum的使用
- iOS应用程序内购/内付费
- cesiumjs开发实践(二) Viewer控件
- Faster R-CNN安装运行
- VS2013的图例说明
- Hadoop学习路线图
- cesiumjs开发实践(三) 地图图层介绍
- Android开发类似苹果iOS 7的沉浸式状态栏
- C#中将json转化成list