在 Java 中,何时调用枚举常量的构造函数?

2022-09-03 14:11:35

要使用Java中的人为示例,代码如下:

enum Commands{
   Save("S");
   File("F");

   private String shortCut;
   private Commands(String shortCut){ this.shortCut = shortCut; }
   public String getShortCut(){ return shortCut; }
}

我有以下测试/驱动程序代码:

public static void main(String args[]){
   System.out.println(Commands.Save.getShortCut());
}

问题是:在Java中,何时调用枚举常量的构造函数?在上面的示例中,我只使用枚举常量。这是否意味着构造函数仅被调用一次以进行创建?还是两者都会一起构建?SaveSaveSaveFile


答案 1

初始化类时调用构造函数。将按成员声明顺序调用每个构造函数,而不管实际引用和使用哪些成员。enum


答案 2

与该方法非常相似,构造函数在首次初始化 Enum 类时调用。枚举的所有实例都是在使用枚举之前创建的。static() {...}

public static void main(String args[]){
   System.out.println(Commands.Save.getShortCut());
}

在此示例中,调用了两者的 ctor 和 之前已完成的 ctor。SaveFileSave.getShortCut()

它们按顺序调用,如代码中声明的那样。