我已经构建了这种数据枚举:
enum Sexo {
HOMBRE("H"), MUJER("M"), OTRO("O");
private String sexo;
private Sexo(String sexo){
System.out.println("constructor del tipo enum");
this.sexo=sexo;
}
}
然后,在Main方法中,我只是这样做:
public static void main(String[] args) {
Sexo sexo1 = Enum.valueOf(Sexo.class, "HOMBRE");
Sexo sexo2 = Enum.valueOf(Sexo.class, "MUJER");
Sexo.valueOf("OTRO");
}
然后,我在控制台上有了这个:
constructor del tipo enum
constructor del tipo enum
constructor del tipo enum
我知道我对每个枚举类型的构造函数都有一个调用,使用句子"Sexo“(枚举类型的名称)。但是:为什么构造函数只运行一次?请注意,我有两个实例和一个对类的直接调用。
发布于 2018-08-18 08:31:27
调用构造函数的不是valueOf
方法。
第一次使用类时,会为每个文本调用enum
的构造函数。所以在你的例子中,这是在第一次调用Enum.valueOf
之前。
对构造函数的三个调用是由这三个文字引起的,而不是您对valueOf
的三个调用。
https://stackoverflow.com/questions/51904242
复制相似问题