为了账号安全,请及时绑定邮箱和手机立即绑定

为什么java方法Enum.valueof调用枚举类型构造函数?

为什么java方法Enum.valueof调用枚举类型构造函数?

慕运维8079593 2021-07-09 18:25:36
我已经建立了这种数据枚举: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 enumconstructor del tipo enumconstructor del tipo enum我知道我有一个对每个枚举类型的构造函数的调用,其中包含句子“Sexo”(枚举类型的名称)。但是:为什么构造函数只运行一次?请注意,我有两个实例和一个对类的直接调用。
查看完整描述

1 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

它不是valueOf调用构造函数的方法。

enum首次使用类时,会为每个文字调用an 的构造函数。所以在你的情况下,那是在第一次调用Enum.valueOf.

对构造函数的三个调用是由三个文字而不是您对 的三个调用引起的valueOf


查看完整回答
反对 回复 2021-07-29
  • 1 回答
  • 0 关注
  • 181 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信