2017-06-16 9 views
0

ソケットを介してクラスインスタンスを送信するクライアント/サーバーアーキテクチャがあります。 1つのクラスにおいてJavaソケット:間違ったブール値を受け取る

Iブールを有する:

public class Survey implements Serializable { 
    private static final long serialVersionUID = -1156493488498723461L; 
    private boolean isExpired; 

    public Survey() { 
     this.isExpired = false; 
    } 

    public void markAsExpired() { 
     this.isExpired = true; 
    } 

    public boolean isExpired() { 
     return isExpired; 
    } 
} 

Iがパケットを送信部:

survey.markAsExpired(); 
HashMap<Header, Object> packet = new HashMap<Header, Object>(); 
packet.put(header, survey); 

System.out.println(survey.isExpired()); // prints true 
try { 
    socketOutput.writeObject(packet); 
    socketOutput.flush(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

I(上記参照)真のブールセットと、そのクラスを送信し、クライアントは常にそれをfalseとして受け取ります。

これはどこから来たのですか?

+0

インスタンスを作成し、ソケット経由で送信するコードを共有できますか? – BackSlash

+0

@BackSlash完了。 –

+0

問題を示す[mcve]を作成できますか?我々は実行することができます完全な、最小限のプログラム。 –

答えて

0

オブジェクト自体の代わりにディープコピーを送信することで問題を解決できました。回避策が働いた。

関連する問題