当前位置: 首页 > 知识库问答 >
问题:

如何使特定元素在非静态ArrayList中保持静态?

安泰平
2023-03-14

有没有办法在非静态ArrayList中添加静态元素?

我有我的Collaborator类,这个类有一个Projects Arraylist。问题是,我的Project类有一个编辑项目的方法,但是当我进行编辑时,它不会更新我创建的协作者的Project ArrayList中的元素。

手动更新需要我在Collaborators Arraylist中运行Projects Arraylist,以搜索哪些合作者拥有我正在编辑的项目。

我在Main类中创建了一个静态项目对象,当我编辑他时,它似乎可以工作。但是我不能在方法内部创建静态对象。

class Collaborator {
String name;
String email;
ArrayList<Project> projects = new ArrayList<>();

我试图使整个ArrayList保持静态,但它使我创建的所有新协作者都有相同的项目,这是我不希望发生的。

提前谢谢。

共有3个答案

徐飞尘
2023-03-14

我不完全理解您的问题,但仍试图帮助您解决问题。

我有我的Collaborator类,这个类有一个Projects Arraylist。问题是,我的Project类有一个编辑项目的方法,但是当我进行编辑时,它不会更新我创建的协作者的Project ArrayList中的元素。

如果你做的事情是正确的,这是不可能的。假设您想调用项目类的方法,该类对对象的属性进行一些编辑。那你应该这样做。

projects.get(i).function_name()

您正在从ArrayList调用第i个Project对象的函数,该函数实际上是从ArrayList更新对象的。

在问题的这一部分,我的项目类有一个编辑项目的方法,但是当我编辑时,迫使我怀疑你可能做错了什么。

编辑意味着,您是否正在更新项目类对象?您正在调用哪个对象的方法来更新该对象?显示代码将帮助我们更好地理解您的问题。

我坚信您不需要将ArrayList设置为静态,因为您可以随时更新ArrayList的成员对象

支彭亮
2023-03-14

如何使特定元素在非静态ArrayList中保持静态?

这是不可能的。

这根本没有道理。

static关键字仅对变量和方法(以及不同上下文中的类)有意义。集合的元素不是变量。

如果您向我们展示了代码的相关部分,我们可能会建议您应该做什么。但你目前的做法是(正如他们所说的)“找错方向”。

我的Project类有一个编辑项目的方法,但是当我编辑时,它不会更新我创建的合作者中的Project ArrayList中的元素。

对此有许多可能的解释。但我们需要看到代码:

>

执行项目编辑的代码(方法?)。

郑嘉悦
2023-03-14

我建议,也许你在某个地方拿了一个项目的副本,并编辑了副本,而不是原件?

检查您将项目放入arraylist的位置、从何处取出项目以及在何处编辑项目-如果您使用以下任何方式:

projects.add(new Project(y))

然后将原始“y”项目的副本放入其中,编辑“y”时,副本不会更改。

 类似资料:
  • 问题内容: 直到几周前,我还以为我知道何时创建字段和方法或。例如,当一个字段(例如另一个类的对象)对于该类的任意数量的对象是唯一的时,应将其设置为。 但是几周后,我读到了有关JVM垃圾收集的信息。 我知道字段永远不会被垃圾收集,并且始终保持在内存中,除非类加载器本身是垃圾收集的。 但是,如果我不创建该字段,至少它将被垃圾回收。 因此,在使字段/方法静态化与否之间似乎有一条 很细的界限 。 有人可以

  • 我不知道什么时候在程序中使用一个静态/非静态变量。 我理解非静态/静态变量之间的区别,但我只是不知道何时使用每一个变量。那么在上面的代码中,为什么函数不能是静态的呢?(什么时候应该是静态的?)

  • 我有以下代码: 到目前为止,代码还可以,但我无法在主方法中实例化'in',比如,因为它显示

  • 问题内容: 只是为了澄清我正在考虑的这个权利,在Java中,静态字段是整个类使用的变量/字段,还是可以用于引用该类的所有对象?非静态字段是由对象定义的变量吗?并且与对象1引用相同类的第二个对象可以具有与对象1的静态字段不同的值吗? 问题答案: 与实例变量不同,在创建该类的实例之前,可以访问该类中的静态字段或静态类变量。在运行时创建该类的实例时,将创建该类中的实例变量(非静态变量)。因此,直到创建该

  • 我想澄清一下,在java中,静态字段是整个类使用的变量/字段,或者可以被引用该类的所有对象使用?非静态字段是由对象定义的变量?第二个对象引用与对象1相同的类,它可以对对象1的静态字段具有不同的值?

  • 我的程序有问题。Eclipse写道: 我做错了什么?我的应用程序中有2个错误。班你能改进我的代码并解释一下吗?先谢谢你。 多边形 地聚线