【问题标题】:Java compile error: "reached end of file while parsing }"Java 编译错误:“解析时到达文件末尾}”
【发布时间】:2011-02-08 14:44:32
【问题描述】:

我有以下源码

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 }

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

【问题讨论】:

  • 您收到错误是因为您缺少一对大括号。仔细看课程。

标签: java compiler-errors


【解决方案1】:

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

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 });
  }
}

【讨论】:

  • 一个原因可能是类括号之外的单行 cmets ......这就是我所面临的
【解决方案2】:

您需要将您的班级放在{} 中。一些额外的提示:根据 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
       });
    }
}

【讨论】:

  • "带有小写字母" - 祝你好运。 :) 另外,虽然我同意你的评估,但 OP 正在尝试修改 Minecraft,它倾向于使用该格式作为类名(不确定这是要求还是只是他们的内部约定。
  • 哈,谢谢。更新。关于我的世界的有趣评论。
【解决方案3】:

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

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

正确方法:

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

【讨论】:

  • 这与其他早期答案有何不同?
【解决方案4】:

是的。您在公共课程行下缺少一个“{”。然后在代码末尾关闭它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多