我知道如何添加一个对象:如何更改对象的ArrayList中的字段的值?
ArrayList<Object> ob = new ArrayList<Object>();
ob.add (index, some_object);
但让说,对象有一个名为“名称”字段,我怎么只能更改单场?
例如:
ob.setName(name);
(我知道这是行不通的。)
我知道如何添加一个对象:如何更改对象的ArrayList中的字段的值?
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
。
另外,我敢肯定他不应该使用ArrayList
@ utdemir你是对的。 – Elazar
如果你问,你有一个List
其中包含要更新对象的情况,但还没有到该对象的引用,那么你需要先找到内对象该列表,然后更新其name
字段。
如果您确实有对该对象的引用,那么它包含在列表中的事实是无关紧要的:调用some_object.setName(name)
并且对象将具有新名称,无论它是从列表中提取还是直接提取。
您似乎混淆了存储对象的列表和对象本身。尝试是这样的:
Object temp = ob.get(index);
temp.name = new_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();
}
不知道如果一个ArrayList是你的情况最好的选择。为什么要更新arrayList中的项目的属性?你能描述一下你想达到的目标吗? –
无关。为变量赋予有意义的名称。命名一个“ob”列表是误导性的。通常的做法是像'objects'(即**复数形式**)或类似的东西... – informatik01
ob.get(index).setName(“nameToBeSet”); – MaheshVarma