我有一个客户端/服务器架构,通过套接字发送类实例。
在一个班级中我有一个布尔值:
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;
}
}
我发送数据包的部分:
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();
}
当我将该类的布尔值设置为true(见上文)时,客户端始终将其作为false接收。
这是从哪里来的?
答案 0 :(得分:0)
我可以通过发送深层副本而不是对象本身来解决问题。解决方法但工作正常。