我收到此代码的编译错误:
public class Matching {
public static int match = (int) Math.floor(Math.random()*cities.size()); //Error is here
}
我想使"匹配"成为全局变量。
我的编译错误是:
不知道"内部类测试程序中的非法静态声明程序.匹配修饰符'static'只允许在常量变量声明中
在初始化期间使用静态非最终变量。
错误意味着什么,我也不知道如何解决它。
发生这种情况是因为您的Matching
类位于另一个名为 testingProgram
的类中,并且不static
。
本身static
时才允许在内部类中static
字段。您可以通过多种方式解决此问题:
- 通过使
Matching
成为static
内部类, - 通过使
Matching
成为顶级类,或 - 通过使
static int match
最终,即final static int match
在某个静态类(例如main(中创建变量,并确保它传递给此类的构造函数。我不知道你为什么要这样做,但它很困难的原因是因为这不是一个好主意。如果您需要保存"匹配"的状态,请提供更多信息。
public static void main() {
int match;
Matching m = new Matching(match);
}