我有以下Java类:
public class GetCardInfoRequest implements RequestBase, java.io.Serializable{
public String CardID;
public String CardUniqueID;
public String who;
public String pass;
public GetCardInfoRequest(){}
public GetCardInfoRequest(String id, String uniqueid, String who, String pass){
CardID = id;
CardUniqueID = uniqueid;
this.who = who;
this.pass = pass;
}
@Override
public RequestType getRequestType() {
return RequestType.GetCardInfo;
}
public String getCardID() {
return CardID;
}
public String getCardUniqueID() {
return CardUniqueID;
}
}
而且我在序列化方面遇到问题。我一直在阅读有关 java 序列化的教程,但它们似乎都暗示使对象可序列化就像简单地实现“java.IO.Serializable”接口一样简单,唯一需要注意的是没有不可序列化的字段班上。
正如您在此处看到的,我实现了 java.io.Serializable,并且我的所有字段都是简单的字符串(注意:我实现的“RequestBase”接口只是说该类必须具有 getRequestType 方法,仅此而已)。但是,当我尝试将类的实例序列化为字节数组时,如下所示:
ByteArrayOutputStream b = new ByteArrayOutputStream();
ObjectOutputStream o = new ObjectOutputStream(b);
o.writeObject(req);
request = b.toByteArray();
引发了“Java.io.NotSerializableException”。(在第 3 行)
我敢肯定这是微不足道的,但由于所有教程都非常通用,我不明白这个非常简单的代码有什么问题。任何人都可以帮忙吗?