2011-02-08 4 views
8

Mam następujący kod źródłowyJava kompilacji o błędzie: „osiągnął koniec pliku podczas analizowania}”

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

Gdy próbuję go skompilować otrzymuję następujący błąd:

Co am Robię źle? Każda pomoc doceniona.

+0

Otrzymujesz błąd, ponieważ brakuje Ci aparatu ortodontycznego. Przyjrzyj się uważnie klasie. –

Odpowiedz

15

Trzeba otworzyć i zamknąć swoją klasę z „{...}” jak:

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

Musisz dołączyć swoją klasę w { i }. Kilka dodatkowych wskazówek: Według standardy kodowania Java, należy

  • Połóż { na tej samej linii co deklaracji metoda:
  • Imię twoje zajęcia wykorzystujące CamelCase (z początkowej litery)
  • Nazwa twoje metody wykorzystujące CamelCase (z małej litery początkowej)

Oto jak byłoby to napisać:

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

"z małą literą" - powodzenia po tym. :) Ponadto, podczas gdy zgadzam się z twoją oceną, OP próbuje zmodyfikować Minecraft, który zwykle używa tego formowania dla nazwy klasy (nie jestem pewien, czy to jest wymóg, czy tylko ich wewnętrzna konwencja – Riggy

+0

Hah, dzięki. Zaktualizowane. uwaga: zapisanie minecrafta: – aioobe

4

Zdarza się wtedy, gdy nie prawidłowo zamknąć blok kodu:

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

poprawny sposób:

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

Jak to się różni od innych wcześniejszych odpowiedzi? – Martin

+0

Dzięki .. dla lepszego – ntthushara

1

Tak. Brakowało ci "{" pod linią klasy publicznej. A następnie jeden na końcu kodu, aby go zamknąć.