使用枚举定义常量


package com.longshine.dataaccess.common.constant;

public class ErrorCodeConstant {

public static enum Msg{
P0201E001("E001","Startup failed, : "),
P0201E002("E002","JobConfig jobID:{}  checkMetaColumnNum failed : "),
P0201E003("E003","JobConfig jobID:{}  assignNum less than or equal to zero "),
P0201E004("E004","JobConfig jobID:{}  ipList is null "),
P0201E005("E005","JobConfig jobID:{}  ip is Wrongful "),
P0201E006("E006","JobConfig jobID:{}  assignNum and ipList of num is Wrongful "),
P0201E007("E007","JobConfig jobID:{}  IntaskStrategy  strategyName  Contains Chinese characters  "),
P0201E008("E008","JobConfig jobID:{}  OuttaskStrategy  strategyName  Contains Chinese characters  "),
P0201E009("E009","JobConfig jobID:{}  IntaskStrategy  strategyName  Contains special characters "),
P0201E010("E010","JobConfig jobID:{}  OuttaskStrategy  strategyName  Contains special characters "),


P0202E001("E001","pluginId is null "),
P0202E002("E002","plugin is not exist,please check pluginId : "),
P0202E003("E003","Startup failed, : "),
P0202E004("E004","taskItemList is wrong or is null please check it's. : "),
P0202E005("E005","TaskParameter is null or The format is not correct.: "),



P0203E001("E001","load all plugins error"),
P0203E002("E002","stop all plugins error"),
P0203E003("E003","load one plugin {}  error"),
P0203E004("E004","stop one plugin {}  error"),
P0203E005("E005","start one plugin {}  error"),
P0203E006("E006","plugin directory({}) not exists"),
P0203E007("E007","start all plugins error"),
P0208E001("E001","data monitor writer zk is error"),
P0210E001("E001","writerChannel datas is null or is empty"),


P0302E001("E001","jobconfig publicsh error"),
P0302E002("E002","jobconfig({})not exists"),
P0302E003("E003","close zkClient error"),
P0302E004("E004","delete jobconfig({}) delete error"),
P0302E005("E005","load zkConfig error"),
P0302E006("E006","loadAllConfig error"),
P2301E001("E001","kafka plugin spring configuration file failed to load "),
P2303E001("E001","kafka plugin datasource failed to convert to EntityProperty class"),

P2300E001("E001","Kafka topic configuration information file does not exist "),
P2300E002("E002","Kafka consumer message failed  "),
P2305E001("E001","Kafka Failed to obtain topic  information"),

P2401E001("E001","Excel plugin resolve meta file fail"),

P2501E001("E001","Txt plugin resolve meta file fail");

private String code,value;


private Msg(String code, String value) {
this.code = code;
this.value = value;
}


public String getCode() {
return code;
}


public void setCode(String code) {
this.code = code;
}


public String getValue() {
return value;
}


public void setValue(String value) {
this.value = value;
}


}

}




调用时  --ErrorCodeConstant.Msg.P2501E001.getCode(), ErrorCodeConstant.Msg.P2501E001.getValue()

分别对应  "E001"和"Txt plugin resolve meta file fail"

### 如何在业务代码中使用枚举作为常量的最佳实践 #### 使用枚举定义常量的优势 枚举提供了一种清晰的方式来定义一组命名的常数。相比于简单的整数值或其他原始数据类型的硬编码值,枚举提高了代码的可读性和维护性[^1]。 #### 枚举的声明方式 在许多编程语言中,可以创建一个枚举来代表一系列固定的、预定义的值集合。以下是几种常见编程语言中的枚举声明方法: 对于Java来说, ```java public enum Color { RED, GREEN, BLUE; } ``` Python也支持枚举类型,自版本3.4起引入了`enum`模块: ```python from enum import Enum class Color(Enum): RED = 1 GREEN = 2 BLUE = 3 ``` C++同样提供了强大的枚举特性,在现代标准下甚至允许指定底层存储类型以及类作用域内的成员函数: ```cpp enum class Color : uint8_t { Red, Green, Blue }; ``` #### 应用于实际场景的例子 假设有一个电商应用需要处理订单状态的变化过程——待付款(OrderStatus.PendingPayment),已发货(OrderStatus.Shipped), 已完成(OrderStatus.Completed)等,则可以通过如下形式实现这些状态转换逻辑: 以TypeScript为例, ```typescript enum OrderStatus { PendingPayment = 'PENDING_PAYMENT', Shipped = 'SHIPPED', Completed = 'COMPLETED' } function updateOrder(orderId: number, newStatus: OrderStatus): void { console.log(`Updating order ${orderId} status to ${newStatus}`); // 更新数据库... } ``` 通过这种方式不仅使得代码更加直观易懂,同时也减少了潜在的人为输入错误风险,因为开发者只能选择预先设定好的选项之一来进行赋值操作[^2]. #### 编程风格建议 当涉及到具体编程语言时,应当遵循该语言特有的编码规范。比如Object Pascal推荐保留字全小写;而在其他大多数面向对象的语言环境中则通常采用帕斯卡命名法(首字母大写的驼峰式)。此外,保持良好的格式化习惯有助于提高团队协作效率并降低后期调试难度[^3].
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值