如何在Java中调用一次设置但又不再设置且不是最终值的变量?

时间:2019-08-02 17:03:43

标签: java

启动应用程序后,我仅需要设置几个变量,而无需再次设置,例如SCREEN_WIDTH,ARRAY_X_LENGTH,TIME_APP_STARTED等。

我不会声明这些最终值,因为软件将决定要分配给它们的值,而不是手动确定。不过,我将单词大写,以便可以看到没有其他代码为其分配任何值,只有1。

这是不好的编程习惯吗,如果是的话,我该怎么办,我通常只有一个包含所有这些“最终”变量和我的标志的文件,我不喜欢将它们存储在本地。

2 个答案:

答案 0 :(得分:1)

public class myClass{
    final int screenWidth;
    final int arrayXLength;
    final int timeAppStarted;

    public myClass(){
        screenWidth = getScreenWidth();
        arrayXLength = arrayX.length;
        timeAppStarted = getTime();
    }
}

没问题-您可以在构造函数中为其分配适当的值。

注意:这些将被分配一个默认值,因此您可能要检查是否已进行了正确的分配。您也可以声明为Integer而不是原始数据类型int。

答案 1 :(得分:1)

您最好的选择是将这些变量标记为final。 Java中的final关键字表示该变量只能在应用程序启动后初始化一次。

请注意,如果在声明变量时未初始化final变量,则可以在代码中对其进行初始化的唯一位置是在静态块,实例初始化器块或构造函数中。