Rigo Sarmiento :
Esto se convirtió en mi preocupación, principalmente debido a esto:
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;
}
}
La Host
clase está Primavera @ConfigurationProperties
anotado para ser inyectado con valores de un application.properties
archivo en tiempo de ejecución. Si escribo que como valor de una enum
, tendrá que crear una nueva instancia de objeto de Host
cada vez que utilizo Method.POST?
Shubhendu Pramanik:
No, Se va a crear instancia sólo una vez. Esto se puede comprobar con una declaración de impresión, como a continuación. Aquí getAssets()
y constructor que se ha llamado una sola vez:
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