类别不再被正确识别

时间:2013-05-07 07:11:19

标签: java class compiler-errors

早些时候,我在课堂上添加了一些功能:

public class ScoreScreen extends BasicGameState 
{
    public ScoreScreen(Level level)
    {
        //do initializing
        //A few example lines of code
        hasWon = level.getWon();
        score = level.getScore(); 
    }

    //The method I added
    public void saveScores(String levelNumber)
    {
        BufferedReader reader;
        try
        {
            reader = new BufferedReader(new FileReader("data/monsters/scores.txt"));

            String line;
            int lineCounter = 0;

            ArrayList<String> scores = new ArrayList<String>();

            while ((line = reader.readLine()) != null)
            {
                scores.add(lineCounter, levelNumber + totalScore + medal);
                lineCounter++;
            }

        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}

代码很难完成,但那里没有错误。

添加这个小部分之后,我的构造函数将不再接受它的参数。如果我尝试初始化类:

        //'this' is a Level
        game.addState(new ScoreScreen(this));

我收到错误说

  

将构造函数'ScoreScreen(Level)'更改为'ScoreScreen(Level)'。

这很奇怪。我让Eclipse做其事来纠正代码,但是Eclipse没有改变任何东西,代码仍然不起作用。

ScoreScreen构造函数中的代码也会返回以下行的错误:

  

方法'getWon()'未定义类型级别。   将演员阵容添加到'等级'

起初我以为它可能是Eclipse中的一个错误,所以我重新启动了我的电脑并重新启动了Eclipse,但它没有帮助。也没有在另一台计算机上打开项目。

编辑:Jon Skeet正在做点什么。我将班级名称从Level更改为Test,现在没有错误。唯一的问题是我找不到名为Level的第二个类。

2 个答案:

答案 0 :(得分:1)

这是因为在您的项目中有多个Level类。

要找到问题,只需在班级中查看Level的import语句 你期望的是同级别班吗? 如果没有在您的班级中删除错误的Level导入,然后导入正确的导入。

答案 1 :(得分:1)

在某些IDE中,当他们像try / catch一样为你自动添加代码时,他们还会添加一个日志语句。在那个过程中,他们还会添加日志记录内容的导入,例如 - 正如您在此期间发现的那样 - java.util.logging.Level 在我的IDE中,我编辑了模板以添加我们公司的日志工具。