你能举例说明如何用同一类型的另一个对象更新一个对象中的值吗?例如,这是我的班级:
public class MyObj {
private int id;
private String name;
private String phone;
private String address;
// some getters and settters ...
}
我还有另一堂课:
private ArrayList<MyObj> objectsList; // list of some objects
public MyObj update ( MyObj newObj ) {
// here I need set new values of properties of newObj to object with same id property in objectsList;
}
如果不手动设置所有属性,有什么方法可以做到吗?
答案 0 :(得分:0)
您必须通过迭代或替换为Map<String, MyObj>
来识别列表中的对象
如果不手动设置全部,如何做到这一点存在 特性
不确定。
反射解决它,但反射有成本(它较慢),它可能在运行时失败或给出意外的行为
您可以手动执行或更好地使用为您执行任务的库
但在你的情况下,要处理3个字段,使用反射似乎是一种开销
只需使用setter来设置它们:
MyObj existingObj = ...; // retrieved by a search
existingObj.setName(newObj.getName());
existingObj.setPhone(newObj.getPhone());
existingObj.setAddress(newObj.getAddress());
作为替代方案,如果不关心更改对象的引用,只需替换参数中提供的对象实际上的对象:
int indexOfTheObject = ...; // retrieved by a search
objectsList.set(indexOfTheObject, newObj);