如何更改对象的ArrayList中的字段值?

时间:2013-11-04 19:29:41

标签: java arraylist

我知道如何添加对象:

ArrayList<Object> ob = new ArrayList<Object>();

ob.add (index, some_object);

但是,假设该对象有一个名为“name”的字段,如何才能更改该单个字段? 例如:

ob.setName(name); 

(我知道这不起作用。)

4 个答案:

答案 0 :(得分:1)

这里没有特别的待遇:

ArrayList<SomeObjectType> ob = new ArrayList<SomeObjectType>();
//...
ob.add(index, some_object);
some_object.setName(name);

您要为其设置名称的对象为some_object,而非ob

答案 1 :(得分:1)

如果您询问的情况是List包含您要更新的对象,但您还没有对该对象的引用,那么您需要先找到列表中的对象,然后更新其name字段。

如果你确实有对象的引用,那么它包含在列表中的事实是无关紧要的:调用some_object.setName(name)并且对象将具有新名称,无论是从列表中获取还是直接获取。

答案 2 :(得分:1)

我想也许你想看

public void stuff(List<? extends Foo> list, int indexToAlter){
     // Get the item in the list at the index and call the appropriate method
     list.get(indexToAlter).methodOnFoo();
}

答案 3 :(得分:0)

您似乎混淆了存储对象的列表和对象本身。尝试类似:

    Object temp = ob.get(index);
    temp.name = new_name;