Java,调用对象方法arugh arraylist

H J*_*H J 5 java oop arraylist object

基于这个问题 增量变量名称?

我有一个arraylist'peopleHolder',它拥有各种"人物"物品.我想基于for循环自动创建'person'对象.我做了以下

    peopleHolder.add(new person());
Run Code Online (Sandbox Code Playgroud)

我想从人类中调用方法.例如person.setAge; 我如何通过arraylist调用这些方法?我想要为每个对象设置值的方法.我看过这个答案:Java - 调用ArrayList中对象的方法
但是我认为解决方案依赖于调用静态方法,我希望在存储对象值时让对象特定于该对象.

谢谢

Psh*_*emo 12

如果要在列表中的所有对象上调用某个方法,则需要先对它们进行迭代,然后在每个元素中调用方法.让我们说你的清单看起来像这样

List<person> peopleHolder = new ArrayList<person>();
peopleHolder.add(new person());
peopleHolder.add(new person());
Run Code Online (Sandbox Code Playgroud)

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

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

或使用增强的for循环

int i=0;
for (person p: peopleHolder){
    p.setName("newName" + i++);
}
Run Code Online (Sandbox Code Playgroud)

顺便说一下,你应该坚持使用Java命名约定并使用camelCase风格.类/接口/枚举应以大写字母开头Person,变量/方法名称的第一个标记应以小写字母开头,而其他大写字母则以大写字母开头peopleHolder.