2011-02-08 24 views
8

tengo el siguiente código fuenteJava Error de compilación: "alcanzado el final del archivo, mientras que el análisis sintáctico}"

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

Cuando intento compilar se me sale el siguiente error:

Qué am Estoy haciendo mal? Cualquier ayuda apreciada.

+0

Aparecerá el error porque falta un par de llaves. Mire cuidadosamente la clase. –

Respuesta

15

usted tiene que abrir y cerrar su clase con "{...}" como:

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

Es necesario incluir su clase en { y }. Algunas sugerencias adicionales: De acuerdo con las convenciones de codificación Java, se deben

  • Ponga su { en la misma línea que la declaración de método:
  • Nombre sus clases utilizando CamelCase (con letra mayúscula inicial)
  • Nombre los métodos que utilizan camelCase (con minúscula inicial)

Así es como lo escribiría:

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 mayúscula pequeña" - Buena suerte después de eso. :) Además, aunque estoy de acuerdo con su evaluación, el OP está intentando modificar Minecraft, que tiende a usar ese formato para el nombre de la clase (no estoy seguro si es un requisito o simplemente su convención interna. – Riggy

+0

Hah, gracias. Actualizado. Interesante observación de Minecraft. – aioobe

4

Esto ocurre cuando no cierra adecuadamente el bloque de código: forma

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

correcta:

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

¿Cómo es eso diferente de otras respuestas anteriores? – Martin

+0

Gracias ... para hacerlo mejor – ntthushara

1

Sí. Te faltaba un '{' debajo de la línea de la clase pública. Y luego uno al final de tu código para cerrarlo.

Cuestiones relacionadas