2011-02-08 38 views
8

Tôi có mã nguồn sauJava biên dịch báo lỗi: "đạt kết thúc tập tin trong khi phân tích cú pháp}"

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

Khi tôi cố gắng biên dịch nó tôi nhận được lỗi sau:

gì am Tôi làm sai? Bất kỳ trợ giúp nào được đánh giá cao.

+0

Bạn nhận được lỗi vì bạn thiếu một cặp dấu ngoặc ôm. Hãy nhìn kỹ lớp học. –

Trả lời

15

Bạn phải mở và đóng lớp học của bạn với "{...}" như:

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

Bạn cần phải kèm theo lớp học của bạn trong {}. Một vài gợi ý thêm: Theo quy ước viết mã Java, bạn nên

  • Đặt { của bạn trên dòng tương tự như phương pháp kê khai:
  • Tên lớp học của bạn sử dụng CamelCase (bằng chữ cái vốn ban đầu)
  • Tên phương pháp của bạn sử dụng camelCase (bằng chữ cái đầu nhỏ)

đây là cách tôi sẽ viết nó:

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

"với chữ viết hoa nhỏ" - Chúc may mắn sau đó. :) Ngoài ra, trong khi tôi đồng ý với đánh giá của bạn, OP đang cố gắng mod Minecraft, có xu hướng sử dụng định dạng cho tên lớp (không chắc chắn nếu đó là một yêu cầu hay chỉ là quy ước nội bộ của họ) – Riggy

+0

Hah, cảm ơn. – aioobe

4

Nó xảy ra khi bạn không đúng cách đóng khối mã: cách

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

Đúng:

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

Điều này khác với các câu trả lời trước đó như thế nào? – Martin

+0

Cảm ơn .. vì đã làm cho nó tốt hơn – ntthushara

1

Yes. Bạn đã bỏ lỡ '{' dưới dòng lớp công khai. Và sau đó một ở cuối mã của bạn để đóng nó.

Các vấn đề liên quan