1、最古老的

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

2、改进版的

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

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

/**
* 常量的枚举定义接口
* @author yangzhilong
* @param <T>
*
*/
public interface BaseConstant<T> {
T getCode();
String getDesc();
}
/**
* 操作类型
* @author yangzhilong
*
*/
public enum OPERATION_TYPE implements BaseConstant<String>{
ADD("add", "新增"),
UPDATE("update", "修改"),
DELETE("delete", "删除"); private String code;
private String desc;
OPERATION_TYPE(String key, String value) {
this.code = key;
this.desc = value;
} @Override
public String getCode() {
return code;
} @Override
public String getDesc() {
return desc;
}
}

调用方式:

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

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

public class ConstantUtils {

    /**
* 根据枚举的code获取desc
* @param <T>
* @param clazz
* @param codeValue
* @return
*/
public static <T extends Enum<T> & BaseConstant<T>> String getEnumValue(Class<T> clazz ,
Object codeValue) {
String result = null;
T[] enums = clazz.getEnumConstants();
for(T obj : enums){
if(obj.getCode().equals(codeValue)){
result = obj.getDesc();
break;
}
}
return result;
} /**
* 根据枚举的code获取整个枚举对象
* @param <T>
* @param clazz
* @param codeValue
* @return
*/
public static <T extends Enum<T> & BaseConstant<T>> BaseConstant<T> getEnum(Class<T> clazz ,
Object codeValue) {
BaseConstant<T> result = null;
T[] enums = clazz.getEnumConstants();
for(T obj : enums){
if(obj.getCode().equals(codeValue)){
result = obj;
break;
}
}
return result;
}
}

JAVA中定义常量的几种方式的更多相关文章

  1. PHP中定义常量的几种方式与区别

    [问]在php中定义常量时,const与define的区别? [答]使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数.另外const在编译时要比define快很 ...

  2. JavaScript学习12 JS中定义对象的几种方式

    JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...

  3. Java中HashMap遍历的两种方式

    Java中HashMap遍历的两种方式 转]Java中HashMap遍历的两种方式原文地址: http://www.javaweb.cc/language/java/032291.shtml 第一种: ...

  4. JAVA中集合输出的四种方式

    在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello { public stat ...

  5. JavaScript学习12 JS中定义对象的几种方式【转】

    avaScript学习12 JS中定义对象的几种方式 转自:  http://www.cnblogs.com/mengdd/p/3697255.html JavaScript中没有类的概念,只有对象. ...

  6. (六)javascriptJS中定义对象的几种方式(转)

    JavaScript学习12 JS中定义对象的几种方式 转自:  http://www.cnblogs.com/mengdd/p/3697255.html JavaScript中没有类的概念,只有对象 ...

  7. java中数组复制的两种方式

    在java中数组复制有两种方式: 一:System.arraycopy(原数组,开始copy的下标,存放copy内容的数组,开始存放的下标,需要copy的长度); 这个方法需要先创建一个空的存放cop ...

  8. Java中定义常量(Constant) 的几种方法

    为了方便大家交流Spark大数据,浪尖建了微信群,目前人数过多,只能通过浪尖或者在群里的朋友拉入群.纯技术交流,偶有吹水,但是打广告,不提醒,直接踢出.有兴趣加浪尖微信. 常量使用目的 1,为什么要将 ...

  9. Java中定义常量方法及建议(Class/Interface)

    Class定义常量方法(推荐方法) //final修饰符 public final class Constants { //私有构造方法 private Constants() {} public s ...

随机推荐

  1. 深入理解 Java中的 流 (Stream)

    首先,流是什么? 流是个抽象的概念.是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以"流"的方式进行.设备能够是文件,网络,内存等. 流具有方向性,至于是输入 ...

  2. <jsp:directive.page import=""/>的用法和解释

    <jsp:directive.page import="zero.space.ch03.BookBean"/>    相当于    <%@ page import ...

  3. Oracle用imp和exp实现数据的导入和导出

    使用方法如下: Imp username/password@connect_string param=value - exp username/password@connect_string para ...

  4. C结构体

    什么是结构体? 简单的来说,结构体就是个能够包含不同数据类型的一个结构,他是一种能够自己定义的数据类型,他的特点和数组主要有两点不同,首先结构体能够在一个结构中声明不同的数据类型,第二相同结构的结构体 ...

  5. Linux命令缩写来由

    A 命令 全称 功能 备注 apt AdvancedPackaging Tool APT用来自动下载,配置,安装二进制或者源代码格式的软件包   awk Aho Weiberger and Kerni ...

  6. 【XJOI】【NOI考前模拟赛7】

    DP+卡常数+高精度/  计算几何+二分+判区间交/  凸包 首先感谢徐老师的慷慨,让蒟蒻有幸膜拜了学军的神题.祝NOI2015圆满成功 同时膜拜碾压了蒟蒻的众神QAQ 填填填 我的DP比较逗比……( ...

  7. cgroup子系统2_devices子系统

    devices子系统用于控制cgroup中全部进程能够訪问哪些设备,三个控制文件:devices.allow,devices.deny,devices.list. devices.allow用于指定c ...

  8. mysql必知必会(三、使用mysql)

    一.连接mysql数据库 mysql -u 用户名 -p回车输入密码 二.显示所有的数据库 show databases; 三.使用数据库 use 数据库名; 四.显示所有的表 show tables ...

  9. IntPtr 转 string

    假设有 intPtr pBuffer 方法一: 直接使用Marshal.PtrToStringAnsi方法: string ss = Marshal.PtrToStringAnsi(pBuffer); ...

  10. mysql 数据库远程访问设置方法

    摘自: http://www.iteye.com/topic/418151 mysql数据库远程访问设置方法 1.修改localhost更改 "mysql" 数据库里的 " ...