繁体   English   中英

通过Java套接字发送对象

[英]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对象在这里创建了这样的问题? 任何帮助将不胜感激。 注意:使用的所有类和软件包都与服务器和客户端相同。

如果AuthenticationParamsAuthenticationParams本身的任何部分未标记为可序列化,则序列化将失败。

实际上,类每个部分的每个部分都必须可序列化,或者由于某种原因而无法序列化的字段应被赋予transient修饰符,这表明该对象不应包含在序列化过程中。

AuthenticationParams类可能无法序列化。 您可以添加transient修饰符以将其从序列化中删除,例如:

public transient AuthenticationParams s = new AuthenticationParams();

但是,如果要以序列化形式包含此对象,则只能将AuthenticationParams类序列化。

序列化规则:从实例(要序列化的对象实例)引用的所有非临时对象也必须可序列化。

不能:您可以使用java.io.Externalizable接口来开发自定义序列化机制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM