Java,通过arraylist调用对象方法

新手上路,请多包涵

基于这个问题 Increment variable names?

我有一个数组列表“peopleHolder”,它包含各种“人”对象。我想基于 for 循环自动创建“人”对象。我做了以下

    peopleHolder.add(new person());

我想从 person 类调用方法。例如 person.setAge;如何通过数组列表调用此类方法?我想要为每个对象设置值的方法。我看过这个答案: Java - calling methods of an object that is in ArrayList

但我认为解决方案取决于调用静态方法,我希望在存储对象值时使用特定于对象的方法。

原文由 H J 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 363
2 个回答

如果您想在列表中的所有对象上调用某些方法,您需要先遍历它们并在每个元素中调用方法。让我们说你的列表看起来像这样

List<person> peopleHolder = new ArrayList<person>();
peopleHolder.add(new person());
peopleHolder.add(new person());

现在我们在列表中有两个人,我们想设置他们的名字。我们可以这样做

for (int i=0; i<list.size(); i++){
    list.get(i).setName("newName"+i);//this will set names in format newNameX
}

或者使用增强的 for 循环

int i=0;
for (person p: peopleHolder){
    p.setName("newName" + i++);
}


顺便说一句,你应该坚持使用 Java Naming Conventions

  • 您的 类型,因此类和接口(包括枚举、记录等)应该以大写开头,例如 class Person {..} ,而不是 class person {..}
  • 您的 变量和方法 应以小写开头,例如 peopleHolder

原文由 Pshemo 发布,翻译遵循 CC BY-SA 4.0 许可协议

这是你想要的 ?

 for(person people: peopleHolder){
people.setAge(25);
}

原文由 Crickcoder 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题