当前位置: 首页 > wzjs >正文

做微商建自己的网站有用吗wordpress加图标

做微商建自己的网站有用吗,wordpress加图标,淄博网站建设多少钱,用什么软件做网站seo好写在开始: 1️⃣本文仅用作个人java日常开发记录学习使用,如果涉及版权或者其他问题,及时联系小编修改或者下架,多谢 2️⃣📌 摘要 本文系统梳理Java开发关于枚举Enum的核心规范,重点包含: 命名…

写在开始:
1️⃣本文仅用作个人java日常开发记录学习使用,如果涉及版权或者其他问题,及时联系小编修改或者下架,多谢
2️⃣📌 摘要
本文系统梳理Java开发关于枚举Enum的核心规范,重点包含:
命名规范:强制Enum后缀+全大写常量
属性安全:final字段+私有构造
高效查询:禁止switch匹配,推荐循环/缓存方案
异常防御:Optional返回值+空值处理策略
文档标准:完整注释+变更记录
最佳实践:状态机/策略模式实现方案
禁止事项:可变状态/复杂逻辑等红线
通过本规范可提升代码健壮性和可维护性,仅供参考。
如果赶时间可以直接看第五部分:[ 五、实践案例]!

一、基础规范原则

1.1 命名规范(双严格)
// ✅ 标准格式
public enum DeviceTypeEnum { MOBILE_PHONE, SMART_WATCH 
}// ❌ 典型错误
public enum devicetype {  // 违反驼峰命名MobilePhone         // 违反全大写
}

执行细则:

  • 类名必须使用大驼峰命名法
  • 必须包含Enum后缀(100%强制)
  • 常量命名全大写+下划线(如HTTP_SUCCESS)
1.2 属性定义(不可变设计)
// ✅ 安全实现
private final String code;
private final String name;// ❌ 危险实现
private String code;      // 非final字段
public void setCode(){}   // 存在修改入口

校验清单:

  • 所有字段final修饰
  • 仅允许通过构造器初始化
  • 禁止提供setter方法
  • 引用类型字段使用不可变集合

二、核心编码规范

1. 查找方法实现
// ✅ 推荐方案:循环匹配
public static AccessModeEnum valueOfCode(Integer code) {for (AccessModeEnum e : values()) {if (e.code.equals(code)) return e;}return null; // 或Optional.empty()
}// ❌ 禁止方案:switch逐一匹配
public static AccessModeEnum findByCode(int code) {switch(code) {  // 新增枚举时容易遗漏,防止新加枚举导致的空指针问题。case 1: return LAND;case 2: return NON_LAND;default: throw new IllegalArgumentException();}
}// ✅ 高级方案:静态Map缓存(适合高频调用)
private static final Map<Integer, AccessModeEnum> CODE_MAP = Arrays.stream(values()).collect(Collectors.toMap(AccessModeEnum::getCode, Function.identity()));public static AccessModeEnum getByCode(Integer code) {return CODE_MAP.get(code);
}

三、高级应用场景

//3.1 状态机引擎
public enum OrderStatusEnum {CREATED {@Overridepublic boolean canChangeTo(OrderStatusEnum newStatus) {return newStatus == PAID || newStatus == CANCELED;}},PAID {@Overridepublic boolean canChangeTo(OrderStatusEnum newStatus) {return newStatus == SHIPPED;}};public abstract boolean canChangeTo(OrderStatusEnum newStatus);
}//3.2 策略工厂
public enum FileParserEnum {CSV(FileType.CSV) {@Overridepublic Parser createParser() {return new CsvParser();}},EXCEL(FileType.XLSX) {@Overridepublic Parser createParser() {return new ExcelParser();}};private final FileType fileType;public abstract Parser createParser();public static FileParserEnum getParser(FileType type) {return Arrays.stream(values()).filter(e -> e.fileType == type).findFirst().orElseThrow(() -> new UnsupportedFileTypeException(type));}
}public enum DiscountStrategyEnum {VIP(amount -> amount * 0.7),NORMAL(amount -> amount * 0.9);private final Function<Double, Double> strategy;DiscountStrategyEnum(Function<Double, Double> strategy) {this.strategy = strategy;}public double applyDiscount(double amount) {return strategy.apply(amount);}
}

⚠️ 四、红线禁止清单

致命错误:

❌ 允许枚举字段被修改(非final)❌ 使用switch处理编码映射❌ 超过50个枚举常量未拆分

严重警告:

❌ 缺少Javadoc注释❌ 直接返回未包装的null❌ 在枚举中维护业务状态

优化建议:

⚠️ 避免多层嵌套枚举⚠️ 谨慎实现接口方法⚠️ 控制枚举方法复杂度

📝 附录:代码审查Checklist
在这里插入图片描述

⭐五、实践案例

@Getter
@AllArgsConstructor
public enum DownloadStatusEnum {DOWNLOADING(1, "下载中"),DOWNLOAD_FAIL(2, "下载失败"),DOWNLOAD_SUCCESS(3, "下载成功");private final Integer code;private final String desc;public static DownloadStatusEnum valueOfCode(Integer code) {// 使用for循环进行匹配for (DownloadStatusEnum index : DownloadStatusEnum.values()) {if (Objects.equals(index.getCode(), code))return index;}}return null;  // 返回null(尽量不要扔异常)}
}@Getter
@AllArgsConstructor
public enum OperateContentEnum {CREATE(1, "创建"),MODIFY(2, "修改"),DELETE(3, "删除");private final Integer code;private final String name;public static OperateContentEnum codeOf(Integer code) {return Stream.of(values()).filter(t -> Objects.equals(code, t.getCode())).findFirst().orElse(null);}
}
可读性Stream API 写法更简洁,代码行数少,但对不熟悉函数式编程的人可能理解成本更高for 循环写法更传统,大多数开发者都能立即理解
性能对于小型枚举(几个到几十个元素),两种方法性能差异很小对于大型枚举,for 循环可能略快,因为 Stream API 有一定的创建和操作开销Stream API 在并行处理大量数据时有优势,但枚举通常元素较少,这一优势体现不明显
空值处理Stream API 写法使用 Objects.equals() 可以避免 NPEfor 循环写法中的 index.getCode().equals(code) 如果 code 为 nullgetCode() 返回基本类型的包装类可能有NPE
维护性Stream API 写法更符合现代 Java 编程风格,更易于与其他函数式操作组合for 循环写法更传统,但也更容易调试
建议如果团队习惯使用 Java 8+ 特性,推荐使用 Stream API 写法如果考虑代码的可读性和团队中可能有不熟悉 Stream API 的成员,for 循环写法更安全

最后提示:
规范不是枷锁,而是高效协作的基石! 🛠️
规范不是教条,当遇到特殊业务场景时,应在团队内讨论形成新的共识方案。

写在最后 : 码字不易,如果认为不错或者对您有帮忙,希望读者动动小手,点赞或者关注哈,多谢


文章转载自:

http://OYLH9Iac.zxznh.cn
http://Pcg8usxS.zxznh.cn
http://SC1QGt1U.zxznh.cn
http://b04uGLrg.zxznh.cn
http://IlIOgELg.zxznh.cn
http://o0SlXvHG.zxznh.cn
http://15XpHQ1W.zxznh.cn
http://1fLDYZeW.zxznh.cn
http://vu993WiX.zxznh.cn
http://tVVB0WWc.zxznh.cn
http://YkI60lZf.zxznh.cn
http://lZcDm7sY.zxznh.cn
http://8OlBEeoH.zxznh.cn
http://Q5e7M3Fa.zxznh.cn
http://wveO2sLG.zxznh.cn
http://ikmO7DGE.zxznh.cn
http://fkQgZuEh.zxznh.cn
http://nEud4Ght.zxznh.cn
http://RtQSZkEy.zxznh.cn
http://m6q1lkeY.zxznh.cn
http://MxkCCPyD.zxznh.cn
http://FOFmKTyr.zxznh.cn
http://GlWDnRyW.zxznh.cn
http://na3bQWs3.zxznh.cn
http://wwsAl0wy.zxznh.cn
http://FKPRKr4u.zxznh.cn
http://S72z7vex.zxznh.cn
http://yPFzpCtF.zxznh.cn
http://VQPdQOkT.zxznh.cn
http://9O5NhihP.zxznh.cn
http://www.dtcms.com/wzjs/608851.html

相关文章:

  • 聊城哪里有做网站的网站中医建设
  • 某公司人事管理网站开发网页界面设计要重点掌握哪四个要点
  • 网站文字列表页模板002822中装建设股吧
  • 商丘做网站sqlongliqi个人网站相册怎么做
  • 网站开发用什么数据库桂林网站推广
  • 江西省住房建设部官方网站网站注销怎么做消
  • 太原做网站价格机械加工王
  • 昆明营销网站建设广州网站设计开发招聘
  • 网站单个页面潍坊免费网站制作
  • 毕节市城乡住房建设网站北京市朝阳区网站制作
  • 做网站运营工资多少湖北正规网站建设检修
  • 注册网站的免费网址com网站内容如何自动关联新浪微博
  • 淄博中企动力公司网站电脑培训速成班多少钱
  • 银川网站建设志达四方wordpress后台教程
  • 烟台制作网站的公司简介帝国cms建站实例教程
  • 网站开发与管理课程网络营销的主要内容
  • 永久免费网站建商城WordPress主题页面模板不见了
  • 公众号推文制作网站学网站平面设计
  • 阿里云怎么做网站深圳深圳网站制作
  • 网站备案协议网站空间维护
  • WordPress 网站小图标深圳门户网站开发
  • 做网站为什么一定要留住用户一个前端页面多少钱
  • 西安年网站建设小程序快速开发
  • 广西网站建网站死链检测工具
  • 信息企业网站建设的优势爱情链接
  • 网站备案审核流程图网站建设來超速云建站
  • 南江网站建设搜网站首页不见了seo
  • 东莞优化网站关键词优化昆明市建设厅官方网站
  • php网站开发实例pdfapp网站开发住房公积金
  • 如何做网站排名优化学做网站要编程