Java编译错误:“解析时到达文件末尾}”

时间:2011-02-08 14:44:32

标签: java compiler-errors

我有以下源代码

public class mod_MyMod extends BaseMod
public String Version()
{
     return "1.2_02";
}
public void AddRecipes(CraftingManager recipes)
{
   recipes.addRecipe(new ItemStack(Item.diamond), new Object[] {
      "#", Character.valueOf('#'), Block.dirt
   });
}

当我尝试编译它时,我收到以下错误:

java:11: reached end of file while parsing }

我做错了什么?任何帮助表示赞赏。

4 个答案:

答案 0 :(得分:22)

您必须使用{ ... }打开和关闭课程,例如:

public class mod_MyMod extends BaseMod
{
  public String Version()
  {
    return "1.2_02";
  }

  public void AddRecipes(CraftingManager recipes)
  {
     recipes.addRecipe(new ItemStack(Item.diamond), new Object[] {
        "#", Character.valueOf('#'), Block.dirt });
  }
}

答案 1 :(得分:7)

您需要在{}中附上您的课程。一些额外的指示:根据Java编码约定,你应该

  • 将您的{放在与方法声明相同的行:
  • 使用CamelCase(带有首字母大写字母)命名您的课程
  • 使用camelCase命名您的方法(首字母很小)

以下是我的写作方式:

public class ModMyMod extends BaseMod {

    public String version() {
         return "1.2_02";
    }

    public void addRecipes(CraftingManager recipes) {
       recipes.addRecipe(new ItemStack(Item.diamond), new Object[] {
          "#", Character.valueOf('#'), Block.dirt
       });
    }
}

答案 2 :(得分:6)

当您没有正确关闭代码块时会发生这种情况:

if (condition){
  // your code goes here*
  { // This doesn't close the code block

正确的方式:

if (condition){
  // your code goes here
} // Close the code block

答案 3 :(得分:3)

是。你错过了一个' {'在公共课程线下。然后在代码末尾加一个来关闭它。