【发布时间】:2021-08-14 09:17:33
【问题描述】:
我有一个Projectclass,其中包含Issue对象的非静态ArrayList
public class Project{
private ArrayList<Issue> issue_Array = new ArrayList<>();
//method to remove Issue
public void removeIssue(Issue issue_obj) {
this.issue_Array.remove(issue_obj);
}
}
这是Issue 类
public class Issue {
public void deleteThisIssue() {
Project.removeIssue(this); //this is where I don't know
}
}
我正在寻找一种方法让问题对象从另一个类的 ArrayList 中删除自己。我的方法是从Project 类中调用removeIssue() 方法并传递this。但后来我意识到我不能将ArrayList<Issue> 声明为静态,因为不同的Project 存储不同的ArrayList<Issue>,我如何才能从存储在另一个类中的 ArrayList 中删除问题本身?
【问题讨论】:
-
removeIssue 是一个实例方法,它必须通过 Project 的一个实例来调用,而你却把它当作一个静态方法来调用
-
是的,我最初将 ArrayList
和 removeIssue 声明为 static ,但现在我需要 ArrayList 和 removeIssue 为非静态。 -
你的 removeIssue 方法不应该在 Issue 类中,它应该在 Project 类中,让我们开始吧。将它放在 Issue 类中是没有意义的。