繁体   English   中英

Java 枚举构造函数

[英]Java enum constructors

声明在这里

有一条语句“可以在枚举之外调用枚举构造函数。” 在 JAVA SE:编程完成课程。 我知道枚举构造函数可以具有私有或默认访问修饰符。 当它是私有的时,我们无法访问枚举之外的枚举构造函数。 当枚举具有默认访问修饰符时,我们可以在枚举之外访问枚举构造函数。 但是我找不到任何关于如何访问枚举之外的枚举构造函数的示例。 你能举个例子吗?

语言规范

如果枚举声明中的构造函数声明是公共的或受保护的(第 6.6 节),则会出现编译时错误。

...

在枚举声明中,没有访问修饰符的构造函数声明是私有的。

因此,枚举构造函数始终是私有的:您不能在枚举本身之外调用枚举构造函数; 并且您只能通过this(...)作为枚举构造函数之一的第一条语句调用另一个构造函数,而不是new MyEnumType(...)

来自 Java 文档:

https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

枚举类型的构造函数必须是包私有或私有访问。 它会自动创建在枚举体开头定义的常量。 您不能自己调用枚举构造函数

包私有意味着没有访问修饰符,但在这种情况下,枚举构造函数隐式仍然只有私有访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM