Java枚举和具有私有构造函数的类之间有什么区别?

Java枚举和具有私有构造函数的类之间有什么区别?,第1张

Java枚举和具有私有构造函数的类之间有什么区别?

差异:

  1. 枚举扩展
    java.lang.Enum
    并获得其所有不错的功能:
    1. 通过正确的序列化自动实现单例行为
    2. .toString
      枚举值的自动可读方法,无需重复枚举名称
    3. .name
      .ordinal
      专用方法
    4. 可用于基于高性能的位集
      EnumSet
      EnumMap
  2. 枚举由以下语言专门处理:
    1. 枚举使用一种特殊的语法,简化了实例创建过程,而无需编写数十个
      public static final
      字段
    2. 枚举可以在
      switch
      语句中使用
    3. 枚举不能在枚举列表之外实例化,除非使用反射
    4. 枚举不能扩展到枚举列表之外
  3. Java自动将多余的东西编译成枚举:
    1. public static (Enum)[] values();
    2. public static (Enum) valueOf(java.lang.String);
    3. private static final (Enum)[] $VALUES;
      values()
      返回其副本)

可以使用适当设计的类来模拟其中的大多数,但这

Enum
实际上很容易创建具有这组特别理想的属性的类。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5487866.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存