我有一个常量字符串列表,需要在Java程序中的不同时间显示它们。
在CI中,可以在代码顶部定义如下字符串:
#define WELCOME_MESSAGE "Hello, welcome to the server"
#define WAIT_MESSAGE "Please wait 5 seconds"
#define EXIT_MESSAGE "Bye!"
我想知道在Java中做这种事情的标准方法是什么?
我有一个常量字符串列表,需要在Java程序中的不同时间显示它们。
在CI中,可以在代码顶部定义如下字符串:
#define WELCOME_MESSAGE "Hello, welcome to the server"
#define WAIT_MESSAGE "Please wait 5 seconds"
#define EXIT_MESSAGE "Bye!"
我想知道在Java中做这种事情的标准方法是什么?
finalJava中的@csss表示引用无法更改-但指向的对象仍然可以更改。对我们来说幸运的是,String在Java中是一个不可变的类,因此afinal String在这两个方面都是const。
Answers:
通常,您可以在类的顶部定义它:
public static final String WELCOME_MESSAGE = "Hello, welcome to the server";
当然,根据使用此常量的位置,使用适当的成员可见性(public/ private/ protected)。
static。每次实例化类型时,将其设置为私有和非静态仍将创建该字符串的新副本。参见stackoverflow.com/q/1415955/247763
它看起来像这样:
public static final String WELCOME_MESSAGE = "Hello, welcome to the server";
如果这些常数仅在单个类中使用,则希望将其private改为public。
我们通常将常数声明为static。这样做的原因是因为Java每次实例化该类的对象时都会创建非静态变量的副本。
因此,如果我们使常量不变static,那么它将节省内存。
通过final我们可以使变量恒定。
因此,定义常量的最佳实践如下:
private static final String YOUR_CONSTANT = "Some Value";
访问修饰符可以private/public取决于业务逻辑。
您可以使用
public static final String HELLO = "hello";
如果您有许多字符串常量,则可以使用外部属性文件/简单的“常量持有者”类
static final String WELCOME_MESSAGE = "Hello";?