令牌“;”,“{”在此令牌之后的语法错误

时间:2012-10-09 16:40:33

标签: java syntax-error

只是一个简单的类调用一个打印数组的类。我在Eclipse中遇到语法错误。我也得到一个错误,我没有一个名为Kremalation的方法。

public class AytiMain {

    public static void main(String[] args) {
        AytiMain.Kremalation();
    }
}

public class Kremalation {

    String[] ena = { "PEINAW", "PEINOUSA", "PETHAINW" };
    int i; // <= syntax error on token ";", { expected after this token

    for (i = 0; i <= ena.lenght; i++)
        System.out.println(ena[i]);
}
}

6 个答案:

答案 0 :(得分:5)

你有代码(不是声明变量和/或初始化它),而是一个方法,即:

for (i=0; i<=ena.lenght; i++)
    System.out.println(ena[i]);

在Java中,代码必须驻留在方法中。你不能调用一个类,你必须调用一个声明类中的方法。

<强> WRONG

class ClassName {
   for (...) 
}

<强> CORRECT

class ClassName {
  static void method() {
    for (...)
  }

  public static void main(String[] args) {
    ClassName.method();
  }
}

答案 1 :(得分:2)

您无法将方法定义为类。 它应该是

public static void kremalation()
{
String ena[]={"PEINAW","PEINOUSA","PETHAINW"};
int i;
for (i=0; i<=ena.lenght; i++)
    System.out.println(ena[i]);
}

答案 2 :(得分:1)

public class AytiMain {


    public static void main(String[] args) {
        AytiMain.Kremalation();
    }

    public static void Kremalation() {// change here.

        String ena[]={"PEINAW","PEINOUSA","PETHAINW"};
        int i;

        for (i=0; i<=ena.lenght; i++)
            System.out.println(ena[i]);

    }    
}

答案 3 :(得分:0)

两个可能的答案。

1)如果您想将其定义为类,请从第二个中删除public。

2)在闭括号内移动Kremalation并用void替换class并将其作为静态方法。

答案 4 :(得分:0)

你不能直接在类中包含可执行代码。添加一个方法并使用该类的实例来调用该方法..

public class Kremalation {

    public void method() {

        String ena[]={"PEINAW","PEINOUSA","PETHAINW"};
        int i;

        for (i=0; i<=ena.lenght; i++)
            System.out.println(ena[i]);
    }

}

现在,在您的main方法中,写下: -

public static void main(String[] args) {
    new Kremalation().method();    
}

答案 5 :(得分:0)

两种方法来解决这个问题.....

第一,同一档案中有两个班级:

public class AytiMain {


    public static void main(String[] args) {

        new Kremalation().doIt();
    }

}

class Kremalation {

  public void doIt(){        // In Java Codes should be in blocks
                             // Like methods or instance initializer blocks

    String ena[]={"PEINAW","PEINOUSA","PETHAINW"};
    int i;

    for (i=0; i<=ena.lenght; i++)
        System.out.println(ena[i]);

   }

}

第二次将课程更改为方法:

public class AytiMain {


    public static void main(String[] args) {
        AytiMain.Kremalation();
    }

    public static void Kremalation() {     // change here.

        String ena[]={"PEINAW","PEINOUSA","PETHAINW"};
        int i;

        for (i=0; i<=ena.lenght; i++)
            System.out.println(ena[i]);

    }    
}