首页 > 解决方案 > Java 枚举构造函数

问题描述

声明在这里

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

标签: javaenums

解决方案


语言规范

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

...

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

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


推荐阅读