java - java - 如何在Java Spring Boot应用程序中从mysql动态生成Enum类型?
问题描述
在我的项目中,我们希望以 Enum 类型管理所有 REST API 错误代码,如以下代码:
package com.example.util
public enum ErrorType{
SUCCESS("0000", "success")
PARAMS_EMPTY("3001", "params cannot be empty")
}
我们遇到的问题是,如果我们将类放入util包中,每次我们在业务spring boot app中添加新的错误类型,我们都需要修改、发布和重新编译app和util项目,这将很难维护util包。基本上,我们更喜欢维护一个相对稳定的实用程序包。
所以我们正在考虑是否有一种方法可以动态生成Enum类型,我们可以提前在mysql中配置错误信息,然后我们可以在应用程序启动过程中将它们加载到enum类型中。
我不确定在 Java 中动态生成枚举类型是否是个好主意,或者是否有更好的解决方案来解决这个问题。
解决方案
您不能在枚举中添加或删除值。枚举是完整的静态枚举。
如果您需要处理变量值,则需要使用标准类。
例如,您可以拥有以下内容:
public Error {
public static Error getByName(String name) {
....
}
public static Error getByCode(int code) {
....
}
}
并按如下方式使用:
Error myError404 = Error.getByCode(404);
显然,这段代码给了你很大的灵活性,但你无法提前知道是否存在特定的错误代码。而且你不能使用与枚举相关的 ide 设施。
推荐阅读
- node.js - 发出 post 请求并将信息发送到 reactjs 文件
- ruby-on-rails - 使用字符串作为种子生成器在 ruby on rails 中生成随机数
- python - 如何反序列化从 c++ 发送到 python 3 的 opencv 图像?
- drools - 有状态会话和无状态会话的区别
- typescript - “查找用法”显示类方法的错误结果
- r - 使用 checkresiduals() 函数检查残差(来自 ETS+STL 方法)
- html - 如何使被“***”隐藏的元素可以访问?
- java - maven-compiler-plugin:jar:3.8.1 丢失
- servlets - 数据在不同的选项卡之间共享
- c# - 实体框架。是否可以并建议在上下文中多次使用事务。?