为什么java枚举构造函数必须是私有的?

为什么java枚举构造函数必须是私有的?,java,Java,public或protected修饰符不允许与enum构造函数一起使用。为什么?我曾尝试阅读标准文档,但没有很好地理解它。构造函数旨在自定义枚举内常量的创建,而不是创建和初始化枚举的不同实例(这没有意义)。这就是为什么它必须是私人的 注意:枚举类型的构造函数必须是包私有或 私人访问。它会自动创建以下常量: 在枚举正文的开头定义。不能调用枚举 你自己 链接:松散相关:因为它位于定义值的同一个enum中,如果理想情况下可以声明构造函数public(例如)。。。外部API(理想情况下)可以为枚举创建新

public
protected
修饰符不允许与
enum
构造函数一起使用。为什么?我曾尝试阅读标准文档,但没有很好地理解它。

构造函数旨在自定义枚举内常量的创建,而不是创建和初始化枚举的不同实例(这没有意义)。这就是为什么它必须是私人的

注意:枚举类型的构造函数必须是包私有或 私人访问。它会自动创建以下常量: 在枚举正文的开头定义。不能调用枚举 你自己


链接:

松散相关:因为它位于定义值的同一个
enum
中,如果理想情况下可以声明构造函数
public
(例如)。。。外部API(理想情况下)可以为枚举创建新值。。。。。和enum应该是常量。@lealcelderio我想你误用了“理想”这个词。这一点也不理想。枚举表示一组有限的值。添加更多内容的能力是不可取的。它会中断开关语句等。您应该问问自己为什么要使用枚举?如果您可以向枚举中添加值,它还会有用吗?这个构造函数必须是私有的,因为枚举定义了一组有限的值。如果构造函数是公共的,那么人们可能会创造更多的价值。这将扩展最初声明的值集。