class Room {
private String description;
private HashMap<String,Room> dir=new HashMap<String,Room>();
Room(String de){
description=de;
}
public String toString() {
return description;
}
public void add(String s,Room r) {
dir.put(s, r);
}
}
class Game {
Room lobby; //Syntax error on token";",,expected
lobby=new Room("pub");
}
有两个类。Game类有一个问题,说令牌“;”,expected上的语法错误。我很困惑。
答案 0 :(得分:0)
代替:
Room lobby; //Syntax error on token";",,expected
lobby=new Room("pub");
使用内联声明和实例化:
Room lobby = new Room("pub");
您只能在一个类的代码{}(方法,静态/实例块,其他使用该块的构造)中包含一条语句。
答案 1 :(得分:0)
Java仅在
期间允许初始化 JVM仅在上述步骤中才允许分配内存。在您提供的示例中,lobby=new Room("pub");
由于在类级别JVM中不知道如何分配内存而导致错误。
答案 2 :(得分:0)
在Java的Initializing Fields doc之后,有三个选项:
1-声明初始化:
<field name="your_field_to_hide" attrs="{'invisible': [('your_other_module_field','condition','value')]}"/>
2-静态初始化程序块:
Room lobby=new Room("pub");
3-初始化程序块:
static {
lobby=new Room("pub");
}