我知道如何添加一个对象:
ArrayList<Object> ob = new ArrayList<Object>();
ob.add (index, some_object);
但是假设对象有一个名为“名称”的字段,我怎样才能只更改那个字段?
例如:
ob.setName(name);
(我知道这不起作用。)
这里没有特殊处理:
ArrayList<SomeObjectType> ob = new ArrayList<SomeObjectType>();
//...
ob.add(index, some_object);
some_object.setName(name);
您要为其设置名称的对象是some_object
,而不是ob
。
如果您询问的情况是,您有一个List
包含要更新的对象,但您还没有对该对象的引用,那么您需要首先在列表中找到该对象,然后更新其name
场地。
如果您确实有对该对象的引用,那么它包含在列表中的事实是无关紧要的:some_object.setName(name)
无论是从列表中获取还是直接获取,调用和对象都将具有新名称。
我想也许你想看看
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();
}
您似乎混淆了存储对象的列表和对象本身。尝试类似:
Object temp = ob.get(index);
temp.name = new_name;