我遇到以下問題。我可以將交易狀態設置爲「開始,結束或正在進行」。我設置了它,然後將我的Transaction對象序列化到檢索它的服務器上。第一次(當事務處於啓動模式時)就像魅力一樣工作,但是當我重新發送對象時,這次是「正在進行中」模式,服務器繼續以「開始」模式看到它。我測試了序列化之前的代碼和反序列化之後的代碼,這肯定是問題所在。任何幫助將非常感激。相關的代碼段如下:Java序列化。字段更改值
序列
if ((query instanceof Transaction) && !(trx.getTransactionState()==Consts.trx_start)) System.out.println("Not start");
oos.writeObject(query);
oos.flush();
反序列化
while (true) {
Object statement = null;
try {
statement = ois.readObject();
if ((statement instanceof Transaction) && !(((Transaction) statement).getTransactionState()==Consts.trx_start)) System.out.println("Not start 2");
handle_statement(statement, socket);
} catch (IOException e) {
和Transaction類:
public class Transaction extends Statement{
/**
*
*/
private static final long serialVersionUID = -2284996855537430822L;
Statement statement_list;
int trx_state;
/**
*
*/
public Transaction() {
trx_state = Consts.trx_start;;
}
/**
* @param statement
*/
public void setStatement(Statement statement) {
statement_list = statement;
}
public void setTransactionState(int state) {
trx_state = state;
}
public int getTransactionState() {
return trx_state;
}
/**
* @return
*/
public Statement getStatement() {
return statement_list;
}
*捂臉*。我認爲沖洗會做的伎倆...不知道重置。謝謝。像魅力一樣工作 – user1018513
考慮到保留對象圖的設計目標,它是唯一可能的設計。 – EJP