gpt4 book ai didi

java - 用另一个相同类型的对象更新 java 对象的属性

转载 作者:行者123 更新时间:2023-12-04 17:48:35 25 4
gpt4 key购买 nike

你能给我举个例子,如何用另一个相同类型的对象更新一个对象中的值吗?例如这里是我的类(class):

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;
}

存在某种方法如何在不手动设置所有属性的情况下做到这一点?

最佳答案

您必须通过迭代或替换为 Map<String, MyObj> 来识别列表中的对象。

Exist some way how to do that without manually setting up all properties?



当然。
反射解决了它,但反射有代价(它更慢)并且它可能在运行时失败或给出意外行为。
您可以手动完成,也可以更好地使用为您完成任务的库。
但是在您的情况下,仅处理 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);

关于java - 用另一个相同类型的对象更新 java 对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46992586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com