早些时候,我在课堂上添加了一些功能:
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
的第二个类。
答案 0 :(得分:1)
这是因为在您的项目中有多个Level
类。
要找到问题,只需在班级中查看Level的import语句
你期望的是同级别班吗?
如果没有在您的班级中删除错误的Level
导入,然后导入正确的导入。
答案 1 :(得分:1)
在某些IDE中,当他们像try / catch一样为你自动添加代码时,他们还会添加一个日志语句。在那个过程中,他们还会添加日志记录内容的导入,例如 - 正如您在此期间发现的那样 - java.util.logging.Level
在我的IDE中,我编辑了模板以添加我们公司的日志工具。