创建全局变量-Java
我收到此代码的编译错误:创建全局变量-Java,java,global-variables,Java,Global Variables,我收到此代码的编译错误: public class Matching { public static int match = (int) Math.floor(Math.random()*cities.size()); //Error is here } 我想让“匹配”成为一个全局变量 我的编译错误是: “内部类testingProgram中的静态声明非法。仅在常量变量声明中允许匹配修饰符'static' 在初始化期间使用静态非最终变量。“ 我不知道错误的含义,也不知道
public class Matching {
public static int match = (int) Math.floor(Math.random()*cities.size()); //Error is here
}
我想让“匹配”成为一个全局变量
我的编译错误是:
“内部类testingProgram中的静态声明非法。仅在常量变量声明中允许匹配修饰符'static'
在初始化期间使用静态非最终变量。“
我不知道错误的含义,也不知道如何修复它。发生这种情况是因为您的
匹配类位于另一个名为测试程序的类中,并且不是静态的
只有当内部类本身是静态的时,Java才允许内部类中的static
字段。您可以通过以下几种方式解决此问题:
- 通过使
匹配
a静态
内部类
- 通过使
匹配
成为顶级类,或
- 通过使
static int match
final,即final static int match
在某个静态类(例如main)中创建变量,并确保将其传递给该类的构造函数。我不知道你为什么要这么做,但之所以这么难是因为这不是一个好主意。如果需要保存“匹配”状态,请提供更多信息
public static void main() {
int match;
Matching m = new Matching(match);
}
如果不打算更改变量,请在static
之前或之后添加final
关键字。什么是变量?您的代码不清楚,无法对其进行测试。cities是ArrayList如何知道它是内部类?