错误:非法启动类型

时间:2014-10-22 07:22:07

标签: java compiler-errors stack

为什么这一小段代码在第6行和第10行(for循环)中给出了非法的类型错误启动....我无法找到任何无法匹配的大括号...

class StackDemo{
    final int size = 10;
    Stack s = new Stack(size);

    //Push charecters into the stack
    for(int i=0; i<size; i++){
        s.push((char)'A'+i);
    }
    //pop the stack untill its empty
    for(int i=0; i<size; i++){
        System.out.println("Pooped element "+i+" is "+ s.pop());
    }
}

我已经实现了Stack类,

3 个答案:

答案 0 :(得分:5)

您无法在课程级别使用for循环。将它们放在methodblock

java.util.Stack中的Java也没有这样的构造函数。

应该是

Stack s = new Stack()

另一个问题

s.push(char('A'+i))// you will get Unexpected Token error here

只需将其更改为

即可
s.push('A'+i);

答案 1 :(得分:2)

你不能在类体内使用for循环,你需要将它们放在某种方法中。

class StackDemo{
final int size = 10;
Stack s = new Stack(size);
public void run(){
   //Push charecters into the stack
   for(int i=0; i<size; i++){
       s.push(char('A'+i));
   }
   //pop the stack untill its empty
   for(int i=0; i<size; i++){
      System.out.println("Pooped element "+i+" is "+ s.pop());
   }
   }
}

答案 2 :(得分:1)

你不能只在一个类中编写代码,你需要一个方法:

class StackDemo{
    static final int size = 10;
    static Stack s = new Stack(size);

    public static void main(String[] args) {
        //Push charecters into the stack
        for(int i=0; i<size; i++){
            s.push(char('A'+i));
        }
        //pop the stack untill its empty
        for(int i=0; i<size; i++){
            System.out.println("Pooped element "+i+" is "+ s.pop());
        }
    }
}

方法main是Java应用程序的入口点。 JVM将在程序启动时调用该方法。请注意,我已将代码字static添加到您的变量中,因此可以直接在静态方法main中使用它们。