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. 多线程编程中条件变量和的spurious wakeup 虚假唤醒

    1. 概述 条件变量(condition variable)是利用共享的变量进行线程之间同步的一种机制.典型的场景包括生产者-消费者模型,线程池实现等. 对条件变量的使用包括两个动作: 1) 线程等待 ...

  2. 详解Google Chrome浏览器(操作篇)(上)

    开篇概述 在上篇博客中详解Google Chrome浏览器(理论篇)一文中,主要讲解了Chrome 搜索引擎使用.Chrome安装和基本操作.Chrome 基本架构.多线程等原理性问题,这篇将重点讲解 ...

  3. Moq的一些基本用法

    本篇体验Moq的一些基本用法.首先通过NuGet安装Moq.包括: 模拟方法的返回值 模拟方法后执行回调函数 模拟方法依次返回多个值 模拟第二次调用方法返回异常 直接返回被模拟方法的原始返回值 模拟泛 ...

  4. 为iOS应用制作一个二维码

    第一步:找到你发布的ios应用的下载链接: 第二步:使用二维码转换器,将下载链接转换成 二维码.http://my.qzone.qq.com/app/100699951.html?via=appcen ...

  5. 别忽视UIImage中的方向属性, imageOrientation-转

    转 : 别忽视UIImage中的方向属性, imageOrientation

  6. Caused by: org.xml.sax.SAXParseException: The reference to entity "characterEncoding" must end with the ';' delimiter.

    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Sourc ...

  7. JSON.parse()和JSON.stringify()方法

    parse用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age":&qu ...

  8. java单个方法达到了65536字节的限制

    可以使方法更小的一件事是关闭调试.打开调试时,每一行(带代码)都有一个标记该行的语句. 不.重构代码.没有方法应该那么久.永远. Write small methods! 说真的:任何IDE都会指导您 ...

  9. 【BZOJ】【3083】遥远的国度

    树链剖分/dfs序 其实过了[BZOJ][4034][HAOI2015]T2以后就好搞了…… 链修改+子树查询+换根 其实静态树的换根直接树链剖分就可以搞了…… 因为其实只有一样变了:子树 如果roo ...

  10. OTL使用指南

    1 OTL简介 OTL 是 Oracle, Odbcand DB2-CLI Template Library 的缩写,是一个C++编译中操控关系数据库的模板库,它目前几乎支持当前所有的各种主流数据库, ...