【java】枚举类的使用
来源:互联网 发布:教师网络课程心得 编辑:程序博客网 时间:2024/05/16 11:37
1.枚举类是jdk5后出来的特性,与传统的 public static final的好处是可以分类不同的常量,并方便实现从配置文件中取对应常量信息。
2.枚举类使用:
package common;
import java.util.HashMap;
import java.util.Map;
@SuppressWarnings("unchecked")
public enum LoginStatus
{
LINK("linked",0),
BROKEN("broken",123);
private String name;
private int code;
private static Map nameMap = new HashMap();
private static Map codeMap = new HashMap();
static
{
for(LoginStatus u :LoginStatus.values())
{
nameMap.put(u.getName(), u.getCode());
codeMap.put(u.getCode(), u.getName());
}
}
private LoginStatus(String name, int code) {
this.name = name;
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public static Map getNameMap() {
return nameMap;
}
public static void setNameMap(Map nameMap) {
LoginStatus.nameMap = nameMap;
}
public static Map getCodeMap() {
return codeMap;
}
public static void setCodeMap(Map codeMap) {
LoginStatus.codeMap = codeMap;
}
}
System.out.println("name: " + LoginStatus.LINK.getName());
System.out.println("code: " + LoginStatus.LINK.getCode());
System.out.println("codeMap: " + LoginStatus.getCodeMap().toString());
System.out.println("nameMap: " + LoginStatus.getNameMap().toString());
name: linked
code: 0
codeMap: {0=linked, 123=broken}
nameMap: {broken=123, linked=0}
3.实现从配置文件中取对应信息
/**
*
*/
package common;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
/**
*
* 错误码枚举类
* @author xiang
* 2017年5月16日
*
*/
public enum ResultCode
{
/**
* 成功码
*/
SUCCESS(0),
/**
* warn码
* @return
*/
TEST(110);
private int code;
private String message;
private static Properties prop = new Properties();
private static Map<String,String> mapCode = new HashMap<String,String>();
private ResultCode(int code) {
this.code = code;
}
private ResultCode(int code, String message) {
this.code = code;
this.message = message;
}
static
{
ClassLoader sl = Thread.currentThread().getContextClassLoader();
URL url = sl.getResource("Error_message.properties");
try {
InputStream is = url.openStream();
prop.load(is);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for(ResultCode u : ResultCode.values())
{
mapCode.put(String.valueOf(u.getCode()), prop.getProperty(String.valueOf(u.getCode())));
}
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public static Map<String, String> getMapCode() {
return mapCode;
}
public static void setMapCode(Map<String, String> mapCode) {
ResultCode.mapCode = mapCode;
}
}
System.out.println("messageMap: " + ResultCode.getMapCode().toString());
System.out.println("0:message: " + ResultCode.getMapCode().get("0"));
System.out.println("110:message: " + ResultCode.getMapCode().get("110"));
messageMap: {0=SUCCSEE, 110=this is warning}
0:message: SUCCSEE
110:message: this is warning
- java 枚举类的使用
- java 枚举类的使用
- 【java】枚举类的使用
- java枚举类的使用
- java枚举类的使用
- Java 的枚举使用
- java枚举的使用
- java枚举的使用
- Java枚举的使用
- java枚举的使用
- Java枚举的使用
- java枚举的使用
- java 的枚举使用
- Java枚举的使用
- java枚举的使用
- java 枚举的使用
- 枚举的使用 java
- Java的枚举使用
- java基础第一章_原码反码补码
- Spring4集成Swagger:真的只需要四步,五分钟速成
- [LeetCode]21. Merge Two Sorted Lists
- mac sublime text 3 列操作
- 考研英语
- 【java】枚举类的使用
- MNIST机器学习入门
- oracle sql语句性能优化
- c++多态性的一些思考
- android service理解
- 华为2016研发工程师编程题之删数据
- 为NetBeans8.2安装配置Struts框架
- PAT甲级1009
- zynq linux 设置静态ip地址