美文网首页
常量与枚举在项目中的使用

常量与枚举在项目中的使用

作者: 静心安分读书 | 来源:发表于2018-07-18 11:13 被阅读161次

系统里实现常量的方式有三种:
1、接口常量
2、类常量
3、枚举

1、接口常量:jdk1.5之前,没有枚举类,有的用接口来实现系统中的常量。
public interface SwingConstants {
/**
* The central position in an area. Used for
* both compass-direction constants (NORTH, etc.)
* and box-orientation constants (TOP, etc.).
/
public static final int CENTER = 0;
//
// Box-orientation constant used to specify locations in a box.
//
/
*
* Box-orientation constant used to specify the top of a box.
/
public static final int TOP = 1;
/
*
* Box-orientation constant used to specify the left side of a box.
*/
public static final int LEFT = 2;
}
接口常量,写起来方便,看着简洁,但是为了让其他人知道每个常量的含义,必须写注释,如果需要在用到常量对应的信息时候,需要看着注释来写。

2、类常量
没有枚举的时候使用类常量模拟枚举,用一个Map<Integer, String>来封装常量对应的信息
public class ResponseCode {
/** 系统处理正常 /
public static final int SUCCESS_HEAD = 0;
/
* 系统处理未知异常 /
public static final int EXCEPTION_HEAD = 1;
/
* JSON解析错误 /
public static final int JSON_RESOLVE = 2;
/
* 类型不匹配 /
public static final int TRANSTYPE_NO = 3;
/
* Head - messageID未赋值 /
public static final int HEAD_messageID = 4;
/
* Head - timeStamp未赋值 /
public static final int HEAD_timeStamp = 5;
/
* Head - messengerID未赋值 /
public static final int HEAD_messengerID = 6;
/
* Head - transactionType 未赋值 /
public static final int HEAD_transactionType = 7;
/
* digest校验不通过 /
public static final int HEAD_DIGEST = 8;
/
* src校验不通过 /
public static final int HEAD_SRC_NULL = 10;
/
* 协议包含非法字符 /
public static final int ILLEGAL_MESSAGE = 11;
/
* 数据库异常 */
public static final int DATABASE_EXCEPTION = 9;
public static final Map<Integer, String> RESP_INFO = new HashMap<Integer, String>();
static {
// Head 相关
RESP_INFO.put(SUCCESS_HEAD, "系统处理正常");
RESP_INFO.put(EXCEPTION_HEAD, "系统处理未知异常");
RESP_INFO.put(JSON_RESOLVE, "JSON解析错误");
RESP_INFO.put(TRANSTYPE_NO, "类型不匹配");
RESP_INFO.put(HEAD_messageID, "messageID未赋值");
RESP_INFO.put(HEAD_timeStamp, "timeStamp未赋值");
RESP_INFO.put(HEAD_messengerID, "messengerID未赋值");
RESP_INFO.put(HEAD_transactionType, "transactionType未赋值");
RESP_INFO.put(HEAD_DIGEST, "digest校验不通过");
RESP_INFO.put(DATABASE_EXCEPTION, "数据库异常");
RESP_INFO.put(HEAD_SRC_NULL, "src未赋值");
RESP_INFO.put(ILLEGAL_MESSAGE, "协议包含非法字符");
}
}
这种类常量比接口常量好,因为可以定义状态码对应的提示信息。
3、枚举
3.1、所有的枚举类都是Enum类的子类,所以可调用Enum的方法。
3.2、枚举作为参数,比常量作为参数时,传参更准确。常量参数只有符号类型即可,枚举参数必须是枚举类才可以。
3.3、枚举可以写静态方法提供多种功能。
注意是逗号分隔属性,只有属性后边没有方法的话,最后加不加分号都行。
public enum Season {
SPRING,SUMMER,AUTUMN ,WINTER
}
4、网友推荐
使用常量类来维护静态枚举。
静态枚举类里面写静态方法。
public class Constants {
private Dict(String value,String name){
this.value=value;
this.name=name;
}
private final String value;
private final String name;
public String getValue() {
return value;
}
public String getName() {
return name;
}
}
}
参考:https://www.cnblogs.com/lihaoyang/p/6913295.html#undefined

相关文章

  • 常量与枚举在项目中的使用

    系统里实现常量的方式有三种:1、接口常量2、类常量3、枚举 1、接口常量:jdk1.5之前,没有枚举类,有的用接口...

  • el-select遍历显示枚举类型

    使用枚举我们可以定义一些有名字的数字常量。 枚举通过enum关键字来定义。 经常会在项目中用吧,循环遍历枚举放到s...

  • Kotlin特殊类(枚举、内部类)

    枚举 每个枚举常量都有在枚举类声明中获取其名称和位置的属性 枚举常量实现了 Comparable 接口 枚举常量顺...

  • java_枚举enum的使用

    1.项目中对一些相同定义的属性常量定义为枚举进行使用,如下是一个简单的枚举定义: import java.util...

  • Kotlin的枚举

    一、枚举类最基本的用法是实现一个类型安全的枚举。枚举常量用逗号分隔,每个枚举常量都是一个对象。 二、可以使用枚举的...

  • 123 常量与枚举的使用

    1、常量 常量的定义与语法 const 数据类型 常量名称 = 值; 使用常量修改程序 常量使用时机 经常用到并且...

  • 关于extern引出的问题

    问题 项目中在.mm文件中使用宏: 报错: 解析 iOS的常量声明与定义 iOS中声明常量 定义常量 这个是iOS...

  • Kotlin之枚举和''when'

    声明枚举类 声明简单的枚举 声明带属性的枚举,在每个常量创建的时候指定属性值 使用"when"处理枚举类 when...

  • Java自学-类和对象 枚举类型

    枚举类型 步骤 1 : 预先定义的常量 枚举enum是一种特殊的类(还是类),使用枚举可以很方便的定义常量比如设计...

  • 枚举类型笔记

    枚举类型定义常量的语法: enum是定义枚举类型关键字.当需要在程序中使用该常量时,可以使用Constants.C...

网友评论

      本文标题:常量与枚举在项目中的使用

      本文链接:https://www.haomeiwen.com/subject/tqlnpftx.html