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 个实例。