2013-05-07 48 views
0

早些时候,我增加了一些功能类:类无法识别正确了

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(级别)' 到 'ScoreScreen(水平)'。

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

在ScoreScreen的构造函数的代码也返回沿着线错误:

方法“getWon()”在未定义为类型级别。 为“级别”

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

编辑:乔恩Skeet是东西。我将课程名称从Level更改为Test,现在没有错误。唯一的问题是我找不到第二类叫Level

+3

你是否在任何地方引入了另一个'Level'类?你有任何称为'Level'的泛型类型参数吗? – 2013-05-07 07:12:47

+0

@JonSkeet没有,也没有。唯一接近的就是我的LevelScreen类。如果你愿意,我可以添加一个链接到整个项目,它在Dropbox上。但我认为你可能会做些什么。请参阅问题中的编辑。 – 2013-05-07 07:14:38

+1

检查进口。您可能从另一个库导入了Class Level。 – bigGuy 2013-05-07 07:20:00

回答

1

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

1

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

有关查找问题,请参阅您班级中的导入语句。
同样的水平级别你期待什么..?
如果不删除您班级中错误导入的Level,然后导入正确的一个。

+0

Fildor是完全正确的,它是一个记录类,以某种方式被导入。他比你早,但没有把它作为答案。所以,直到他提交它作为答案,我会接受你的答案。 – 2013-05-07 07:29:01