【发布时间】:2023-01-25 09:12:15
【问题描述】:
我正在 main 中创建对象的 ArrayList,并且需要创建单独的公共方法以从 main 外部对它们进行各种操作。 但是这样的方法看不到我的ArrayList。例如,如果对象是具有某些字段(如姓名)的 Person,我需要一个单独的方法来访问 Persons 列表,遍历它,查看是否已经存在具有此名称的人以更改或检索名称。
public static void main(String[] args) {
ArrayList<Person> personList = new ArrayList<Person>();
Person person1 = new Person("Daniel");
personList.add(person1);
}
public boolean changeName(String name) {
//how to reach the list to iterate and manipulate it from here?
return true;
}
【问题讨论】:
-
您可以将 ArrayList 的范围从局部变量更改为字段,或者将其作为参数传递给方法。
-
只是因为设计是问题的一部分:在您的问题上下文中,直接公开和传递数据结构有点难闻。考虑创建一个封装列表的类,例如
People。该类将提供方法,例如changeName(...),并传递 People 对象(而不是裸数据结构)。