首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么java方法Enum.valueof调用枚举类型构造函数?

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

Stack Overflow用户
提问于 2018-08-18 08:22:46
回答 1查看 71关注 0票数 1

我已经构建了这种数据枚举:

代码语言:javascript
复制
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方法中,我只是这样做:

代码语言:javascript
复制
public static void main(String[] args) {

    Sexo sexo1 = Enum.valueOf(Sexo.class, "HOMBRE"); 
    Sexo sexo2 = Enum.valueOf(Sexo.class, "MUJER"); 
    Sexo.valueOf("OTRO");

}

然后,我在控制台上有了这个:

代码语言:javascript
复制
constructor del tipo enum
constructor del tipo enum
constructor del tipo enum

我知道我对每个枚举类型的构造函数都有一个调用,使用句子"Sexo“(枚举类型的名称)。但是:为什么构造函数只运行一次?请注意,我有两个实例和一个对类的直接调用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-18 08:31:27

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

第一次使用类时,会为每个文本调用enum的构造函数。所以在你的例子中,这是在第一次调用Enum.valueOf之前。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51904242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档