【发布时间】:2017-02-12 04:45:16
【问题描述】:
有没有办法在非静态 ArrayList 中添加静态元素?
我有我的 Collaborator 类,而这个类有一个 Projects Arraylist。问题是,我的 Project 类有一个编辑项目的方法,但是当我编辑时,它不会更新我创建的协作者中 Project ArrayList 中的元素。
手动更新需要我在我的 Collaborators ArrayList 中运行 Projects Arraylist 来搜索哪些合作者拥有我正在编辑的这个项目。
我在 Main 类中创建了一个静态 Project 对象,当我编辑他时,它似乎可以工作。但是我不能在方法中创建静态对象。
class Collaborator {
String name;
String email;
ArrayList<Project> projects = new ArrayList<>();
我试图将整个 ArrayList 设为静态,但它使我创建的所有新合作者都拥有相同的项目,这是我不希望发生的。
提前致谢。
【问题讨论】:
-
如果我理解正确:项目实例中的编辑不会反映在列表中的项目实例中?
-
显示用于将
Project类的实例添加到Collaborator类中的projectsArrayList 的方法。 -
“我的 Project 类有一个编辑项目的方法,但是当我编辑时,它不会更新元素”。如何调用方法来编辑
Project类的实例? -
这个问题听起来像XY Problem。当真正的问题是 Y 时,你认为你需要做 X 来解决一些你没有披露的问题。告诉我们真正的问题是什么。
-
我建议您在某个地方复制一个项目并编辑该副本,而不是原件?检查您将项目放入数组列表的位置、将它们取出的位置以及编辑它们的位置。如果你使用像 projects.add(new Project(y)) 这样的东西,那么你就是在里面放了一个原始 'y' 项目的副本,当你编辑 'y' 时,副本不会改变。