【问题标题】:What happens when I grab an object from a static ArrayList and change its parameters?当我从静态 ArrayList 中抓取一个对象并更改其参数时会发生什么?
【发布时间】:2014-05-16 13:04:22
【问题描述】:

我有一个静态的ArrayList<Profile>,我希望能够从我的应用程序中的任何活动中访问它。当我最终解决它时,我会做这样的事情:

Profile profile = Globals.profiles.get(selected);

通常我知道,当我从ArrayList 检索和反对并对其进行更改时,我正在更改ArrayList 中的对象。这是我想要的行为,但我想知道如果 ArrayList 是静态的,它是否仍然适用。例如,如果我:

profile.setNewName("Mike");

是否只更改了从静态ArrayList 派生的本地对象的名称,还是ArrayList 中的对象也更新了?就像我说的,当ArrayList 不是静态时,这是预期的行为。

【问题讨论】:

  • 你检查了java引用什么“静态”是什么意思?
  • 据我所知,这意味着创建的任何Global 对象都只存在一个ArrayList 实例。我认为在 C++ 中,这些对象也存储在内存的不同部分(我不确定 Java 是否是这种情况)而不是本地定义的对象,所以我在这里犹豫

标签: java android arraylist static


【解决方案1】:

static 表示该成员与类相关联,而不是与类的具体实例相关联。 在您的情况下,这意味着 ArrayList 是您的 Globals 类的成员。

回答您的问题:由于您正在处理对象引用,因此您正在直接更新(静态)ArrayList 中的对象。

【讨论】:

    【解决方案2】:

    您将获得与更新 ArrayList 的非静态实例相同的行为

    我认为你需要研究一下静态在 Java 中的含义

    【讨论】:

      猜你喜欢
      • 2014-03-02
      • 1970-01-01
      • 2017-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-04
      • 1970-01-01
      相关资源
      最近更新 更多