枚举有什么用?

2022-09-04 23:43:40

在阅读了一些关于枚举的问题和答案之后,我发现它真的没有用......

它是介于类和变量之间的东西,但我知道我在哪里可以使用它,这样它比类或几个变量更有用。


答案 1

您还可以执行其他操作以及使用它们的原因,但我使用枚举的主要原因是防止参数无效的可能性。例如,假设以下方法:

public void doSomethingWithAMonth(int monthNum);

这不仅不明确(月份索引是从 1 开始还是从 0 开始?),而且您可以向下给出无效数据(13+,负数)。如果您有 JAN、FEB 等的枚举,则签名将变为:Month

public void doSomethignWithAMonth(Month month);

调用此方法的代码将更具可读性,并且无法提供无效数据。


答案 2

我将枚举用于具有多个不变“类型”的任何内容。即一周中的几天。

为什么我在这种情况下不使用String,是因为我不能在String上做switch语句,我可以在Enum上做,所以在一周的每一天,我都可以做一些具体的事情。

我在使用单例模式时也使用枚举,检查有效的Java书籍CH2(第2章创建和销毁对象),引用:

“虽然这种方法尚未被广泛采用,但单元素枚举类型是实现单例的最佳方法。”不打算粘贴代码阅读这本书,它非常出色。

如果我是你,我会先读Java章节中的思考枚举类型。然后在那之后 有效的Java第6章 你应该很好