Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
最近我经常使用枚举。所以我想知道...
私有枚举构造函数和没有任何可见性修饰符(包私有)的枚举构造函数之间有什么区别吗?
枚举的构造函数是隐式的private,就像接口和注释的方法是隐式的public abstract。对于类成员,默认值是本地包。
private
public abstract
顺便说一句,枚举类是隐式的final,嵌套的枚举类是隐式的static。
final
static
较旧的构造往往允许您添加隐式修饰符,但较新的构造不允许您说。例如,枚举是最终的,但您不能添加final到枚举中。
根据java文档
枚举类型的构造函数必须是包私有或私有访问。
但根据JLS
如果没有为枚举类型的构造函数指定访问修饰符,则构造函数是私有的。
所以 package-private 和 private 之间没有区别。