0

2つのセッションスコープのBeanがあります

1)sessionholder1 2)sessionholder2

両方のセッションホルダーには、オブジェクトUserVOが含まれています

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

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

ここで、sesionholder1でuserVOの変数を変更すると、sessionholder2でも変更されます。これは正常な動作ですか、それとも設計が不適切なためですか。

clone()を使用する以外に、これに対する回避策はありますか?親切に助けてください。前もって感謝します。

4

1 に答える 1

2

同じUserVOオブジェクトを両方に保存する場合、もちろん、一方のフィールドを変更すると、もう一方のフィールドも変更されます。2つの異なるオブジェクトが必要な場合は、2つの異なるオブジェクトを作成します。一方が他方のコピーである場合、最良の方法はコピーコンストラクターを使用することです。

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