java - 在 Kotlin 中,有没有办法通过函数调用向枚举中添加一个值?
问题描述
例如,我有一个枚举
enum class User(val userInfo: UserInfo){
USER_A( NewUser(A) ),
USER_B( NewUser(B) ),
USER_C( NewUser(C) ),
}
现在我想在User
枚举中添加一个用户,我可以做这样的事情吗?
User.add( "USER_D", NewUser(D) )
从我的角度来看,由于枚举是常量并且在编译时创建的,我认为这是不可能的。但是有人知道可以实现类似事情的解决方法吗?
提前致谢!
解决方案
枚举属性被转换为普通的静态最终实例。我认为最接近的是使用简单的地图:
class User(val info: UserInfo)
val users = mutableMapOf("USER_A" to User(A))
不幸的是,没有像 compiletime 这样在编译时检查访问器users.USER_A
,但这并不完全可能,因为映射在运行时发生了变异。
推荐阅读
- reactjs - 警告:列表中的每个孩子都应该有一个唯一的“关键”道具。反应表
- ios - 通过 xcode 11 swift 5 ios 访问 iphone 相机
- google-cloud-platform - GCP: firewall rules limits
- c++ - 在 Windows 中使用 boost::program_options 从命令行参数中读取 Unicode 字符
- javascript - JS 将数组向下递增 1
- elasticsearch - 在数据库中抓取和索引大型文件系统的最佳工具是什么?
- docker - 将 Traefik 从主机规则转移到重定向规则
- kubernetes - 在 terraform 配置中从销毁进程中排除资源
- ios13 - iOS 13.2.3 pdfViewGestureRecognize 和 PDFkit
- python - 在 matplotlib 中为条形图和折线图添加标签值