2011-02-08 5 views
8

Ho il seguente codice sorgenteJava Errore di compilazione: "ha raggiunto la fine del file durante l'analisi}"

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

Quando provo a compilarlo ottengo il seguente errore:

Cosa am Sto sbagliando? Qualsiasi aiuto apprezzato.

+0

Stai ricevendo l'errore perché ti manca un paio di parentesi graffe. Guarda attentamente la classe. –

risposta

15

si deve aprire e chiudere la classe con "{...}" come:

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

È necessario racchiudere la classe in { e }. Alcune indicazioni in più: secondo le convenzioni di codifica Java, si dovrebbe

  • Metti la tua { sulla stessa linea della dichiarazione di metodo:
  • Nome vostre classi utilizzando CamelCase (con iniziale maiuscola)
  • Nome i metodi che utilizzano camelCase (con iniziale minuscola)

Ecco come vorrei scriverlo:

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

"con piccola lettera maiuscola" - Buona fortuna dopo quella. :) Inoltre, mentre sono d'accordo con la tua valutazione, l'OP sta provando a modare Minecraft, che tende ad usare quella formulazione per il nome della classe (non sono sicuro se questo è un requisito o solo la loro convenzione interna. – Riggy

+0

Hah, grazie. commento regolare minecraft – aioobe

4

Succede quando non si chiude correttamente il blocco di codice: modo

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

corretta:

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

Come è diverso da altre risposte precedenti? – Martin

+0

Grazie .. per renderlo migliore – ntthushara

1

Sì. Ti mancava un '{' sotto la linea di classe pubblica. E poi uno alla fine del tuo codice per chiuderlo.

Problemi correlati