您的位置:首页 > 编程语言 > Java开发

JAVA中定义常量的3种方式

2015-03-13 17:38 771 查看
1、最古老的

//未处理
public static final int PROCESS_STATUS_UNTREATED = 0;
//已接收
public static final int PROCESS_STATUS_ACCPECTED = 1;
//已处理
public static final int PROCESS_STATUS_PROCESSED = 2;


2、改进版的

public static final class PROCESS_STATUS{
//未处理
public static final int UNTREATED = 0;
//已接收
public static final int ACCPECTED = 1;
//已处理
public static final int PROCESSED = 2;
}


3、枚举版(好处显而易见,既可以获取code又能获取汉字),以后定义常量采用此方法

public interface KeyValueEnum{
Object getCode();
Object getDesc();
}


public static enum PROCESS_STATUS implements KeyValueEnum{
UNTREATED(0,"未处理"),
ACCPECTED(1,"已接收"),
PROCESSED(2,"已处理");
private Integer code;
private String desc;
private PROCESS_STATUS(Integer key , String value){
this.code = key;
this.desc = value;
}
@Override
public Integer getCode() {
return code;
}

@Override
public String getDesc() {
return desc;
}
}


调用方式:

//获取编码
PROCESS_STATUS.UNTREATED.getCode();
//获取描述
PROCESS_STATUS.UNTREATED.getDes();


根据枚举类型和编码获取code的描述:

public static <T extends Enum<T> & KeyValueEnum>  String getEnumValue(Class<T> clazz ,
Object codeValue) {
String result = null;
T[] enums = clazz.getEnumConstants();
for(T obj : enums){
if(obj.getCode().equals(codeValue)){
result = String.valueOf(obj.getDesc());
break;
}
}
return result;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: