【发布时间】:2019-10-06 16:17:56
【问题描述】:
public 或 protected 修饰符不允许与 enum 构造函数一起使用。为什么?我试过阅读标准文档,但不是很理解。
【问题讨论】:
-
因为它在定义值的同一
enum内,如果理想情况下可以声明构造函数public(例如)......外部 API 可以(理想情况下)为enum..... 和 enum 应该是常量值。 -
@lealceldeiro 我认为您误用了“理想”一词。它没有什么理想的。枚举表示一组有限的值。添加更多的能力是不可取的。它会破坏 switch 语句等。
-
您应该问自己为什么要使用枚举?如果您可以为其添加值,枚举仍然有用吗?
-
这个构造函数必须是私有的,因为枚举定义了一组有限的值。如果构造函数是公共的,人们可能会创造更多的价值。这将扩展最初声明的值集。
标签: java