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. 【maven】排除maven中jar包依赖的解决过程 例子:spring cloud启动zipkin,报错maven依赖jar包冲突 Class path contains multiple SLF4J bindings.

    一直对于maven中解决jar包依赖问题的解决方法纠结不清: 下面这个例子可以说明一个很简单的解决方法: 项目启动报错: Connected to the target VM, address: '1 ...

  2. 基于svnserve的SVN服务器(windows下安装与配置)

    基于svnserve的SVN服务器(windows下安装与配置) 基于svnserve的SVN服务器(windows下安装与配置)关键字: svn 安装SVNserve 从http://subvers ...

  3. 追MM和Java的23种设计模式

    我在Java论坛看到这篇文章,作者以轻松的语言比喻了java的32种模式,有很好的启发作用,但可惜没有给出具体的意思,我就在后边加上了.这些都是最简单的介绍,要学习的话建议你看一下阎宏博士的<J ...

  4. Android图片加载框架最全解析(三),深入探究Glide的缓存机制

    在本系列的上一篇文章中,我带着大家一起阅读了一遍Glide的源码,初步了解了这个强大的图片加载框架的基本执行流程. 不过,上一篇文章只能说是比较粗略地阅读了Glide整个执行流程方面的源码,搞明白了G ...

  5. [Android Pro] 控制硬加速 hardwareAccelerated 在3.0才有的

    从Android3.0 (API level11)开始,Android的2D显示管道被被设计得更加支持硬加速了.硬加速使用GPU承担了所有在View的canvas上执行的绘制操作. 启用硬加速最简单的 ...

  6. Java:java+内存分配及变量存储位置的区别

    Java内存区分 Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分 ...

  7. OpenCV学习(17) 细化算法(5)

    本章我们看下Pavlidis细化算法,参考资料http://www.imageprocessingplace.com/downloads_V3/root_downloads/tutorials/con ...

  8. TCP三次握手四次挥手相关问题探讨

    TCP的握手挥手和状态转换是很多网络问题的基础.在此进行相关问题的讨论及记录. 首先,这幅图大致介绍了TCP连接和断开的过程: 注意其中的几个状态: LISTEN, SYN-SEND, SYN-RCV ...

  9. css美化、优化、合并工具推荐

    其实很多时候,我们写完css规则之后,我们思考的无非就是3件事情: 验证 美化 压缩 当然无论是我们自己做这样的工具还是寻找一些比较好的成熟的工具,都有几个期望: 是否支持一些ie下的hack方式: ...

  10. 在C#中使用属性控制 XML 序列化来解析XML

    今天需要解析一个XML,这个XML和一般情况用.NET的序列化出来的格式不太一样. 我就又补习了一下. 分享一下学习成果吧. 示例代码下载: http://download.csdn.net/deta ...