Java - 如何在实例化时根据参数动态命名对象?

时间:2015-10-22 04:11:42

标签: java oop instantiation

我正在尝试为游戏创建一个基本的“addPlayer”方法。该方法应该向玩家阵列添加“玩家”。

当前代码:

  @Override
  public void addNewPlayer(String name) {
  Player one = new Player(name);
  players.add(one);
  }

我遇到的问题是,这只会创建一个播放器,因为第二个播放器的创建会导致第二个播放器与名称“one”相关联。

理想情况下,我想使Player对象的名称依赖于传入的参数“name”。这可能吗?

我正在使用Player对象为游戏命名和 int final identification 。也许我需要重新考虑那个设计?

1 个答案:

答案 0 :(得分:2)

你很困惑。在您的示例中,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个实例。