gpt4 book ai didi

java - 每次调用以对象引用作为值的枚举都会创建一个对象吗?

转载 作者:搜寻专家 更新时间:2023-11-01 02:57:07 24 4
gpt4 key购买 nike

这成为我的担忧,主要是因为:

public enum Method {
POST(new Host().getAssets()),
GET("GET"),
DELETE("DELETE"),
PUT("PUT");

private String method;

Method(String s) {
method = s;
}

private String getMethod() {
return method;
}
}

Host 类是 Spring @ConfigurationProperties 注释,在运行时注入(inject)来自 application.properties 文件的值。如果我将其写为 enum 的值,它会在我每次使用 Method.POST 时创建一个新的 Host 对象实例吗?

最佳答案

不,它只会创建一次实例。这可以使用如下打印语句进行检查。这里 getAssets() 和构造函数只被调用了一次:

    public class Host {

public static void main(String[] args) {
System.out.println("Hello World!");
System.out.println(Method.POST);
System.out.println(Method.POST);
System.out.println(Method.POST);
}

Host()
{
System.out.println("--------------");
}

String getAssets()
{
System.out.println("ssssssssssss");
return "eeee";
}
}


enum Method {
POST(new Host().getAssets()),
GET("GET"),
DELETE("DELETE"),
PUT("PUT");

private String method;

Method(String s) {
method = s;
}

private String getMethod() {
return method;
}
}

O/P:

    Hello World!
--------------
ssssssssssss
POST
POST
POST

关于java - 每次调用以对象引用作为值的枚举都会创建一个对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53425466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com