Java错误:不是声明,我不知道为什么?

时间:2014-04-10 18:44:34

标签: java

我真的不确定导致此编译时错误的原因是什么?我一直想弄明白,似乎无法找到问题所在。

ClassTable.java:253: error: not a statement
                class_c class = classes.nextElement();
                ^

ClassTable.java:253: error: ';' expected
                class_c class = classes.nextElement();
                       ^

ClassTable.java:253: error: <identifier> expected
                class_c class = classes.nextElement();
                             ^
ClassTable.java:253: error: <identifier> expected
                class_c class = classes.nextElement();
                                                   ^

ClassTable.java:254: error: illegal start of expression
                class_c parent = table.getClass(class.getParent());
                                                ^

ClassTable.java:254: error: ';' expected
                class_c parent = table.getClass(class.getParent());
                                                                 ^

ClassTable.java:264: error: illegal start of expression
        list.add(class);
                 ^

ClassTable.java:264: error: ';' expected
        list.add(class);

这是我的代码:

class ClassTable {
private int semantErrors;
private PrintStream errorStream;
private Hashtable<class_c,ArrayList<class_c>> table;
private boolean noCycles = true;

public void addClass(class_c c){
    Hashtable<class_c, ArrayList<class_c>> table = this.table();

    if(table.containsKey(c)){
        errorStream.print(c.getFilename() + ":" + c.getLineNumber() + ": " + "Class " + c.getName() + " was previously defined.");
        System.out.println();
        this.semantError();

    }
    else{
        ArrayList<class_c> list = new ArrayList<class_c>();
        table.put(c,list);
    }

}

public void addChildren(){
    Enumeration classes = this.table.keys();

    while(classes.hasMoreElements())
    {

        class_c class = classes.nextElement();
        class_c parent = table.getClass(class.getParent());


    if(!table.containsKey(parent)){
        errorStream.print(c.getFilename() + ":" + c.getLineNumber() + ": " + "Class "+ c.getName() + " inherits from an undefined class " + c.getParent()+".");
        System.out.println();
        this.semantError();
    }
    else{
    ArrayList<class_c> list = table.get(parent);
    list.add(class);
    this.table.put(parent,list);
        }
     }
   }
 }

请帮助我。为什么我一直收到这个错误????

3 个答案:

答案 0 :(得分:4)

class需要clazz或其他内容。 class是Java中的保留名称。

其他Java关键字是:

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html

答案 1 :(得分:0)

您不能在程序中使用任何关键字作为标识符。有关您的信息,请参阅以下关键字列表:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html

答案 2 :(得分:0)

class是java中用于定义java类的保留关键字 例如:

class Test{
}

其中定义了一个Test类。 所以你不应该用它来定义变量或参考 阅读java中的保留字列表:http://en.wikipedia.org/wiki/List_of_Java_keywords