我真的不确定导致此编译时错误的原因是什么?我一直想弄明白,似乎无法找到问题所在。
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);
}
}
}
}
请帮助我。为什么我一直收到这个错误????
答案 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