Java – 私有和包私有枚举构造函数之间的区别
最近我经常使用Enumerations。 所以我想知道……
私有Enum构造函数和枚举构造函数与任何可见性修饰符(package-private)之间是否有任何区别?
根据java 文档
枚举类型的构造函数必须是包私有或私有访问。
但是加入JLS
如果没有为枚举类型的构造函数指定访问修饰符,则构造函数是私有的。
所以包私有和私有没有区别。
枚举的构造函数是隐式private
,就像接口和注释的方法是隐式public abstract
。 对于类成员,默认为package local。
BTW枚举类是隐式final
,嵌套的枚举类是隐式static
。
较旧的构造倾向于允许您添加隐式修饰符,但较新的构造不允许您说。 例如,枚举是最终的,但你不能将final
添加到枚举。