[英]Sending objects via java sockets
我正在尝试使用Java套接字发送以下类的对象:
public class CommunicationObj implements Serializable{
private String ID;
public AuthenticationParams s = new AuthenticationParams();
public CommunicationObj(String s){
ID = s;
}
public String getID(){
return ID;
}
}
但是发送以下类的对象会引发异常(无法发送该对象),但是以下代码有效
public class CommunicationObj implements Serializable{
private String ID;
public CommunicationObj(String s){
ID = s;
}
public String getID(){
return ID;
}
}
为什么AuthenticationParams
对象在这里创建了这样的问题? 任何帮助将不胜感激。 注意:使用的所有类和软件包都与服务器和客户端相同。
如果AuthenticationParams
或AuthenticationParams
本身的任何部分未标记为可序列化,则序列化将失败。
实际上,类每个部分的每个部分都必须可序列化,或者由于某种原因而无法序列化的字段应被赋予transient
修饰符,这表明该对象不应包含在序列化过程中。
AuthenticationParams
类可能无法序列化。 您可以添加transient
修饰符以将其从序列化中删除,例如:
public transient AuthenticationParams s = new AuthenticationParams();
但是,如果要以序列化形式包含此对象,则只能将AuthenticationParams类序列化。
序列化规则:从实例(要序列化的对象实例)引用的所有非临时对象也必须可序列化。
不能:您可以使用java.io.Externalizable接口来开发自定义序列化机制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.