JAVA中定义常量的几种方式
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中定义常量的几种方式的更多相关文章
- PHP中定义常量的几种方式与区别
[问]在php中定义常量时,const与define的区别? [答]使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数.另外const在编译时要比define快很 ...
- JavaScript学习12 JS中定义对象的几种方式
JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...
- Java中HashMap遍历的两种方式
Java中HashMap遍历的两种方式 转]Java中HashMap遍历的两种方式原文地址: http://www.javaweb.cc/language/java/032291.shtml 第一种: ...
- JAVA中集合输出的四种方式
在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello { public stat ...
- JavaScript学习12 JS中定义对象的几种方式【转】
avaScript学习12 JS中定义对象的几种方式 转自: http://www.cnblogs.com/mengdd/p/3697255.html JavaScript中没有类的概念,只有对象. ...
- (六)javascriptJS中定义对象的几种方式(转)
JavaScript学习12 JS中定义对象的几种方式 转自: http://www.cnblogs.com/mengdd/p/3697255.html JavaScript中没有类的概念,只有对象 ...
- java中数组复制的两种方式
在java中数组复制有两种方式: 一:System.arraycopy(原数组,开始copy的下标,存放copy内容的数组,开始存放的下标,需要copy的长度); 这个方法需要先创建一个空的存放cop ...
- Java中定义常量(Constant) 的几种方法
为了方便大家交流Spark大数据,浪尖建了微信群,目前人数过多,只能通过浪尖或者在群里的朋友拉入群.纯技术交流,偶有吹水,但是打广告,不提醒,直接踢出.有兴趣加浪尖微信. 常量使用目的 1,为什么要将 ...
- Java中定义常量方法及建议(Class/Interface)
Class定义常量方法(推荐方法) //final修饰符 public final class Constants { //私有构造方法 private Constants() {} public s ...
随机推荐
- 深入理解 Java中的 流 (Stream)
首先,流是什么? 流是个抽象的概念.是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以"流"的方式进行.设备能够是文件,网络,内存等. 流具有方向性,至于是输入 ...
- <jsp:directive.page import=""/>的用法和解释
<jsp:directive.page import="zero.space.ch03.BookBean"/> 相当于 <%@ page import ...
- Oracle用imp和exp实现数据的导入和导出
使用方法如下: Imp username/password@connect_string param=value - exp username/password@connect_string para ...
- C结构体
什么是结构体? 简单的来说,结构体就是个能够包含不同数据类型的一个结构,他是一种能够自己定义的数据类型,他的特点和数组主要有两点不同,首先结构体能够在一个结构中声明不同的数据类型,第二相同结构的结构体 ...
- Linux命令缩写来由
A 命令 全称 功能 备注 apt AdvancedPackaging Tool APT用来自动下载,配置,安装二进制或者源代码格式的软件包 awk Aho Weiberger and Kerni ...
- 【XJOI】【NOI考前模拟赛7】
DP+卡常数+高精度/ 计算几何+二分+判区间交/ 凸包 首先感谢徐老师的慷慨,让蒟蒻有幸膜拜了学军的神题.祝NOI2015圆满成功 同时膜拜碾压了蒟蒻的众神QAQ 填填填 我的DP比较逗比……( ...
- cgroup子系统2_devices子系统
devices子系统用于控制cgroup中全部进程能够訪问哪些设备,三个控制文件:devices.allow,devices.deny,devices.list. devices.allow用于指定c ...
- mysql必知必会(三、使用mysql)
一.连接mysql数据库 mysql -u 用户名 -p回车输入密码 二.显示所有的数据库 show databases; 三.使用数据库 use 数据库名; 四.显示所有的表 show tables ...
- IntPtr 转 string
假设有 intPtr pBuffer 方法一: 直接使用Marshal.PtrToStringAnsi方法: string ss = Marshal.PtrToStringAnsi(pBuffer); ...
- mysql 数据库远程访问设置方法
摘自: http://www.iteye.com/topic/418151 mysql数据库远程访问设置方法 1.修改localhost更改 "mysql" 数据库里的 " ...