没有什么情况下,必须使用枚举,枚举类型只是起到用于声明一组命名的常数;
那么我们什么时候推荐使用枚举呢;
-
可减少由数字转置或键入错误引起的错误。
-
以后更改值很容易。
-
使代码更易读,这意味着代码中发生错误的概率降低。
-
确保向前兼容性。使用枚举可减少将来有人更改与成员名称对应的值时代码出错的概率。
枚举类: 应用图片路径类型
/** <p class="detail">
* 功能:应用图片路径类型
* </p>
* @ClassName: PicAppType
* @version V1.0
* @date 2016年4月23日
* @author damowang
*/
public enum PicAppType {
USER_HEAD("\\USER\\HEAD\\", "用户头像"),
ARTICLE_ICON("\\ARTICLE\\TEXT\\", "资讯图片");
private String code;
private String detail;
PicAppType(String code, String detail) {
this.code = code;
this.detail = detail;
}
/**
* <p class="detail">
* 功能:快捷迭代验证是否code存在
* </p>
* @author damowang
* @param type
* @return
* @throws
*/
public static PicAppType contains(String type){
for(PicAppType typeEnum : PicAppType.values()){
if(typeEnum.name().equals(type)){
return typeEnum;
}
}
return null;
}
/**
* @return code
*/
public String getCode() {
return code;
}
/**
* @param code
*/
public void setCode(String code) {
this.code = code;
}
/**
* @return detail
*/
public String getDetail() {
return detail;
}
/**
* @param detail
*/
public void setDetail(String detail) {
this.detail = detail;
}
}
应用块: 使用的地方
String picTypeName = reqeust.getParameter("uploadType");
if(StringUtils.isBlank(picTypeName)){
temp.setStatus(0);
temp.setShowMessage("请传入图片类型!");
renderJson(temp);
return;
}
PicAppType picType =PicAppType.contains(picTypeName);
if (null == picType) {
temp.setStatus(0);
temp.setShowMessage("传入图片类型有误!");
renderJson(temp);
return;
}
public class EnumTest {
public static void main(String[] args) {
PicAppType tempEnum =PicAppType.contains("USER_HEAD");
System.out.println(tempEnum.getCode());
System.out.println(tempEnum.getDetail());
tempEnum =PicAppType.contains("USER_HEAD1");
if(tempEnum==null){
System.out.println("不存在");
return;
}
System.out.println("我执行了...");
}
}
执行结果:
\USER\HEAD\
用户头像
不存在