Serializzazione Java. Cambia il valore Valore [duplicato
-
12-11-2019 - |
Domanda
Ho il seguente problema. Posso impostare lo stato di transazione in modo che sia "avvio, fine o in corso". Ho impostato questo, quindi serializza il mio oggetto di transazione sul server, che lo recupera. Funziona come un fascino per la prima volta (quando la transazione è in modalità iniziale), ma poi quando faccio riferimento all'oggetto, questa volta in modalità "in corso", il server continua a vederlo in modalità "start". Ho testato il codice sulla riga prima della serializzazione e la linea dopo la deserializzazione, e questo è sicuramente dove si trova il problema. Qualsiasi aiuto sarebbe molto apprezzato. I frammenti di codice pertinenti sono i seguenti:
serializzazione
if ((query instanceof Transaction) && !(trx.getTransactionState()==Consts.trx_start)) System.out.println("Not start");
oos.writeObject(query);
oos.flush();
deserializzazione
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) {
e la classe di transazione:
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;
}
Nessuna soluzione corretta