我的一个朋友写了这样的代码:
public AccountModel updateAccountPotential(Long accId) {
AccountModel accModel = accountDAO.findById(accId);
this.calculatePotential(accModel);
return accountDAO.save(accModel);
}
private void calculatePotential(AccountModel accModel) {
accModel.setPotential(some formula);
}
此方法calculatePotential
不返回任何内容,但是对参数字段进行一些操作。会影响updateAccountPotential
方法中的原始对象吗?
答案 0 :(得分:1)
是的,假设setPotential
是典型的设置方法,因为传递到updateAccountPotential
的值是对该对象的引用。该方法(通过setPotential
修改对象的状态(大概)。就像您这样做一样:
AccountModel a = /*...get the account model...*/;
AccountModel b = a;
b.setPotential(/*...*/);
// Both `b` and `a` refer to the same object, and so the state of that object
// is visible whether you go through `b` or `a` to get to it