在Java中Enum和基于枚举的类实现之间的优缺点是什么?

Duc*_*ran 7 java enums

我最近遇到一篇文章讨论在C#中使用基于枚举的类实现,这非常令人印象深刻.这里的第二个是Java.但是,我的同事建议我改用Enum.

任何人都可以指出使用它们的任何利弊,何时使用它?

小智 1

在 Java 中,枚举类型充当使用其唯一名称声明的类。它与任何其他旨在创建恒定值的类非常相似。最近,我还看到一个信息,在Java中声明Enum之前,创建了一个类似枚举的类。就像关于这个问题的文章一样,似乎在 JVM 1.5 之前,基于类的枚举被广泛使用。

您可以检查此来源:http://javarevisited.blogspot.com/2011/08/enum-in-java-example-tutorial.html

我认为这是对 Java 枚举及其创建原因的很好的解释。文章声称 Enum 有 3 个优点:

1)类型安全。

2)除非该类工作彻底,否则 Enum 类很容易出现打印问题。当编码器想要返回字符串结果时,会返回一个原始值。根据我的经验,通过对课程进行一些补充,可以避免这种情况。但问题是,这对编码员来说方便吗?

3)同样,访问是基于类的实例的。因此,编码器无法直接访问 Enum 选项。编码器必须使用类名。

因此:为了方便和代码可读性问题,枚举是一个不错的选择。另外,枚举结构类似于嵌套在载体类中的单个类。如果编码人员想要增强枚举设计并创建自己的风格,他们可以回到旧的手动编码的基于类的系统。