我知道如何添加对象:
ArrayList<Object> ob = new ArrayList<Object>();
ob.add (index, some_object);
但是,假设该对象有一个名为“name”的字段,如何才能更改该单个字段? 例如:
ob.setName(name);
(我知道这不起作用。)
答案 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;