首页 > 解决方案 > 在 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) )

从我的角度来看,由于枚举是常量并且在编译时创建的,我认为这是不可能的。但是有人知道可以实现类似事情的解决方法吗?

提前致谢!

标签: javaandroidkotlinenums

解决方案


枚举属性被转换为普通的静态最终实例。我认为最接近的是使用简单的地图:

class User(val info: UserInfo)
val users = mutableMapOf("USER_A" to User(A))

不幸的是,没有像 compiletime 这样在编译时检查访问器users.USER_A,但这并不完全可能,因为映射在运行时发生了变异。


推荐阅读