差异:
- 枚举扩展
java.lang.Enum
并获得其所有不错的功能:- 通过正确的序列化自动实现单例行为
.toString
枚举值的自动可读方法,无需重复枚举名称.name
和.ordinal
专用方法- 可用于基于高性能的位集
EnumSet
和EnumMap
类
- 枚举由以下语言专门处理:
- 枚举使用一种特殊的语法,简化了实例创建过程,而无需编写数十个
public static final
字段 - 枚举可以在
switch
语句中使用 - 枚举不能在枚举列表之外实例化,除非使用反射
- 枚举不能扩展到枚举列表之外
- 枚举使用一种特殊的语法,简化了实例创建过程,而无需编写数十个
- Java自动将多余的东西编译成枚举:
public static (Enum)[] values();
public static (Enum) valueOf(java.lang.String);
private static final (Enum)[] $VALUES;
(values()
返回其副本)
可以使用适当设计的类来模拟其中的大多数,但这
Enum实际上很容易创建具有这组特别理想的属性的类。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)