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");
}
有两个类。并且游戏类有一个问题,说令牌上的语法错误";",,预期。
Java 只允许在
- 变量的声明或
- 在方法/块或
- 在一个街区内。
JVM 仅在上述步骤中允许分配内存。在您提供的示例中,lobby=new Room("pub");
因为它在类级别 JVM 不知道如何分配内存,从而导致错误。
在Java的初始化字段文档之后,有三个选项:
1- 在声明时初始化:
Room lobby=new Room("pub");
2- 静态初始值设定项块:
static {
lobby=new Room("pub");
}
3- 初始值设定项块:
{
lobby=new Room("pub");
}
而不是:
Room lobby; //Syntax error on token";",,expected
lobby=new Room("pub");
使用内联声明和实例化:
Room lobby = new Room("pub");
在类中的代码块 {}(方法、静态/实例块、使用块的其他构造(中只能有一个语句。