gpt4 book ai didi

java - 单例、静态或接口(interface)作为常量字段?

转载 作者:行者123 更新时间:2023-12-02 04:04:57 27 4
gpt4 key购买 nike

我需要 final 字段作为我的应用配置常量

我知道 3 种不同的方法,但我不知道哪一种是最好的,以及在这种情况下 JVM 的行为是什么(从内存管理和内存问题的角度来看)

<强>1。使用静态字段

public class Constants {
public static final String URL = "https://www.google.com";
}
//usage
Constants.URL

<强>2。使用接口(interface)

public interface Constants {
String URL = "https://www.google.com";
}
//usage
Constants.URL

<强>3。使用单例设计模式(非静态)

public class Constants {
public final String URL = "https://www.google.com";
}
//usage
public static Constants instance = new Constants();
Constants.instance.URL;

最佳答案

都没有,使用和枚举类型。请记住,第二个选项确实不可取,因为接口(interface)的最重要的一点是您定义一个新类型

顺便说一句,枚举是单例(你可以像这样使用它们)并且默认情况下确实是线程安全的。

例如:

public enum ApplicationStatus {
LIVE("live"),
MOCKS("mocks");

private final String status;

ApplicationStatus(final String status) {
this.status = status;
}

public String value() { return status; }
}

这应该适用于整个应用程序的真正的全局消息/常量/等。

关于java - 单例、静态或接口(interface)作为常量字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34424277/

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