0

我有 2 个会话范围的 bean

1)sessionholder1 2)sessionholder2

两个会话持有者中都有对象 UserVO

class SessionHolder1{
private UserVO user = new UserVO();
}

class SessionHolder2{
private UserVO user = new UserVO();
}

现在,如果我在 sessionholder1 中更改 userVO 的某些变量,它也会在 sessionholder2 中更改。这种行为是正常的还是由于设计不当?

除了使用 clone() 之外,还有什么解决方法吗?请帮忙。提前致谢。

4

1 回答 1

2

如果您在两者中存储相同的 UserVO 对象,那么更改其中的某些字段当然会更改另一个中的字段。如果您想要两个不同的对象,请创建两个不同的对象。如果一个是另一个的副本,最好的方法是使用复制构造函数:

/**
 * Constructs a copy of the given userVO
 */
public UserVO(UserVO userVO) {
    ...
}
于 2012-06-11T15:07:32.153 回答