【问题标题】:Creating global variables - Java创建全局变量 - Java
【发布时间】:2017-11-12 09:18:19
【问题描述】:

我收到此代码的编译错误:

public class Matching {        
    public static int match = (int) Math.floor(Math.random()*cities.size()); //Error is here
}

我想让“匹配”一个全局变量。

我的编译错误是:

"内部类 testingProgram.Matching 修饰符 'static' 中的非法静态声明只允许在常量变量声明中使用

在初始化期间使用静态非最终变量。”

不知道错误是什么意思,也不知道如何解决。

【问题讨论】:

  • 如果您不打算更改变量,请在static 之前或之后添加final 关键字。
  • 什么是城市变量?你的代码不清楚,无法测试。
  • 城市是一个数组列表

标签: java global-variables


【解决方案1】:

在某个静态类(例如 main)中创建变量,并确保它被传递给该类的构造函数。我不知道你为什么要这样做,但它之所以困难是因为这不是一个好主意。如果您需要保存“匹配”的状态,请提供更多信息。

public static void main() {
    int match;
    Matching m = new Matching(match);
}

【讨论】:

    【解决方案2】:

    发生这种情况是因为您的 Matching 类位于另一个名为 testingProgram 的类中,而不是 static

    只有当内部类本身是static 时,Java 才允许内部类中的static 字段。您可以通过多种方式解决此问题:

    • 通过将Matching 设为static 内部类,
    • Matching 设为顶级类,或
    • 通过将static int match 设为最终,即final static int match

    【讨论】:

    • 你怎么知道它是一个内部类?
    猜你喜欢
    • 2016-10-25
    • 1970-01-01
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 2014-03-21
    • 1970-01-01
    • 2013-03-23
    相关资源
    最近更新 更多