Java - 如何在实例化时根据参数动态命名对象?
Java - How to dynamically name object based on parameters upon instantiation?
我正在尝试为游戏创建一个基本的 "addPlayer" 方法。该方法应将 "Player" 添加到玩家数组中。
当前代码:
@Override
public void addNewPlayer(String name) {
Player one = new Player(name);
players.add(one);
}
我遇到的问题是这只能创建一个玩家,因为创建第二个玩家会导致第二个玩家与名称 "one" 相关联。
理想情况下,我想让 Player 对象的名称依赖于传入的参数 "name"。这可能吗?
我正在使用 Player 对象来获得游戏的名称和 int 最终标识。也许我需要重新考虑那个设计?
你糊涂了。在您的示例中, one
仅在方法范围内可见,当方法结束时,该引用变量不再可访问。你可以改变
public void addNewPlayer(String name) {
Player one = new Player(name);
players.add(one);
}
至
public void addNewPlayer(String name) {
players.add(new Player(name));
}
请注意,这在功能上与您的版本相同。 players
(假设它是一个 Collection
),可以包含多个 Player
个实例。
我正在尝试为游戏创建一个基本的 "addPlayer" 方法。该方法应将 "Player" 添加到玩家数组中。
当前代码:
@Override
public void addNewPlayer(String name) {
Player one = new Player(name);
players.add(one);
}
我遇到的问题是这只能创建一个玩家,因为创建第二个玩家会导致第二个玩家与名称 "one" 相关联。
理想情况下,我想让 Player 对象的名称依赖于传入的参数 "name"。这可能吗?
我正在使用 Player 对象来获得游戏的名称和 int 最终标识。也许我需要重新考虑那个设计?
你糊涂了。在您的示例中, one
仅在方法范围内可见,当方法结束时,该引用变量不再可访问。你可以改变
public void addNewPlayer(String name) {
Player one = new Player(name);
players.add(one);
}
至
public void addNewPlayer(String name) {
players.add(new Player(name));
}
请注意,这在功能上与您的版本相同。 players
(假设它是一个 Collection
),可以包含多个 Player
个实例。