Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字段转换为局部或全局变量_Java_Android_Global Variables_Local Variables - Fatal编程技术网

Java 字段转换为局部或全局变量

Java 字段转换为局部或全局变量,java,android,global-variables,local-variables,Java,Android,Global Variables,Local Variables,我怀疑哪种选择会更好,以获得更易于理解的代码。我有一个变量,它将在一个方法中使用,但是,由于这个变量是一个配置变量,我认为最好是一个全局变量。因此,我在类的顶部创建了它: 私有最终整数变量=5000 但是,由于这个变量只使用了一次,Android Studio会发出警告说“字段可以转换为局部变量”。您认为最好将此变量保持为全局变量(以便将来更清楚),还是将其设置为局部变量 提前谢谢 将所有不会更改的变量(例如基本url字符串等)保存在单独的java文件中,并保存在单独的包(如UTIL)中。将所有

我怀疑哪种选择会更好,以获得更易于理解的代码。我有一个变量,它将在一个方法中使用,但是,由于这个变量是一个配置变量,我认为最好是一个全局变量。因此,我在类的顶部创建了它: 私有最终整数变量=5000

但是,由于这个变量只使用了一次,Android Studio会发出警告说“字段可以转换为局部变量”。您认为最好将此变量保持为全局变量(以便将来更清楚),还是将其设置为局部变量


提前谢谢

将所有不会更改的变量(例如基本url字符串等)保存在单独的java文件中,并保存在单独的包(如UTIL)中。将所有变量放在那里,并使它们成为静态的,这样您就可以通过使用类名直接访问它们

如果您只在单个方法中使用它,那么最好将其放入局部范围,或者将其定义为常量:private static final int VARIABLE=5000;在我看来,这其实是一个很好的解决方案。我不理解反对票。这是一个糟糕的建议。常量应该在它们所属的类中定义。不是在一个班里。想象一下,如果JDK将其所有常量存储在一个类中,那么这样一个类的大小和常量的名称是什么。想象一下,找到合适的常量会有多糟糕。没有规则规定在整个应用程序中使用的常量需要定义为活动或片段的类范围变量。我仍然认为,有一个像UTIL这样的单独包,并在其中包含常量值的类,这将是更加模块化的项目结构。我的答案仍然有效。但是,您可以完美地定义一个“CONSTANTS.java”文件,在该文件中,您可以为满足不同需求的常量定义不同的类。这是一个完美的解决方案,我也遵循这个规则。如果在整个程序中需要使用40次常量,该怎么办?为什么我们要在一个给定的类中定义它,而不是在一个更一般的、常数特定的类中定义它?因为它根本不可伸缩,而且是违反直觉的。当我使用Cipher类时,它有两种操作模式ENCRYPT和DECRYPT,在Cipher中查找这些常量比在全局Utils中查找要自然得多。当我使用BorderLayout时,我希望在BorderLyout中找到使用的常量(NORTH、EAST等),而不是在UTIL中。所有其他类也一样。如果JDK遵循您的建议,我们将使用一个包含数千个常量的Utils类,并使用可怕的名称,例如BORDER_LAYOUT_NORTH,而不是NORTH,以避免冲突。