java中的枚举?enum和Enum类
java中引入了枚举,通过enum关键字定义或者定义class继承Enum类。
直接使用常量的问题:一致性差(貌似enum也有这个问题?);没有命名空间;类型无意义;
enum实际上采用了类似Map<id, value>
这样的存储结构,所以可以通过enum.value(String)来获取对应的enum值。可以简单的理解为包含(id,value)对的对象。
然后,enum还提供了扩展性,可以添加其他的域和响应的方法。
注意:构造函数只能是private,避免从外部构造enmu值。enum在jvm中是单例的,注意在分布式场景下是如何保证其一致性的?(其实serialized的时候只是传了name属性,在对端重建的时候通过valueof去对应的内存中去找的)
java的枚举类型
最新推荐文章于 2022-07-29 13:21:27 发布