java - 为什么它会运行?
问题描述
enum Color {
RED, GREEN, BLUE;
// 构造函数
private Color() {
System.out.println("Constructor called for : " + this.toString());
}
public void colorInfo() {
System.out.println("Universal Color");
}
}
public class NumTest {
// 输出
public static void main(String[] args) {
Color c1 = Color.RED;
System.out.println(c1);
c1.colorInfo();
}
}
我以为运行的结果是“Constructor called for :RED” 为什么构造函数被调用了3次?</p>
解决方案
一旦类初始化,枚举常量就会全部初始化——只要有Color
. 所以所有三个, RED
, GREEN
, BLUE
, 都被构造了。
请参阅Java 语言规范,第 8.9 章枚举类。
推荐阅读
- c# - Dapr 资源绑定来自外部服务的 HTTP GET
- python-3.x - Python - 创建一个类作为二维 numpy 数组的索引
- css - 为如何从 sass 编译 css 创建规则 - 一种编写更好代码的方法
- sql - Oracle 如何下载/显示物理数据模型
- javascript - 玩家碰撞在 Phaser3 游戏中不起作用
- powershell - Powershell 管理员权限在 Windows 窗体中不起作用
- apache-flink - flink rest 端口传输弱加密算法
- c# - DevExpress Wizard控件中如何使用页面数据模板?
- python-3.x - 如何从字符串列表中获取所有日期
- postgresql - Grails / HIbernate Postgresql 无法查询以前创建的对象