为什么声明一个整数Static会导致我的代码出错?

on1*_*222 0 java static variable-declaration

我正在使用制作一个简单的高分系统代码 - Codecall,但我在使用它时收到错误.导致问题的一行是在HighScoreManager()课堂内.

这是错误的代码:

public String getHighscoreString() {
    String highscoreString = "";
    Static int max = 10; // this line gives an error

    ArrayList<Score> scores;
    scores = getScores();

    int i = 0;
    int x = scores.size();
    if (x > max) {
        x = max;
    }
    while (i < x) {
        highscoreString += (i + 1) + ".\t" + scores.get(i).getNaam() + "\t\t" + scores.get(i).getScore() + "\n";
        i++;
    }
    return highscoreString;
}
Run Code Online (Sandbox Code Playgroud)

线路Static int max = 10;抛出

不是声明

使用小写"s"(static)抛出

非法开始表达

如果我删除Static它的工作原理.我不知道天气会对代码产生很大影响.使用小写的"s"也不起作用,并且大写Static是来自具有代码的网站的内容,所以我不知道他们为什么用大写字母S写它.

Tob*_*olb 6

您的代码中存在一个常见错误和一个非法字段声明:

  1. 首先,通常:它总是static,而不是Static.static应该是小写的.Java不会将其识别为关键字.你可以在这里阅读java中的区分大小写.

  2. 非法字段声明:编译后,我删除了完美执行的代码static从关键字int max = 10;在你的HighscoreManager.class小号getHighscoreString()方法.

另外HighscoreManager.class,我用了Main.class,并Score.classScoreComparator.class你引用的网站,持平.

为什么会这样?

您不能在方法中声明字段静态.默认情况下不允许这样做.

您可以阅读有关该主题的这篇文章.

输出是:

1.  Marge       300
2.  Lisa        270
3.  Bart        240
4.  Maggie      220
5.  Homer       100
Run Code Online (Sandbox Code Playgroud)

  • 虽然如此,但这不是核心问题. (2认同)