次の 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行目)
些細なことだと思いますが、すべてのチュートリアルが非常に一般的であるため、この非常に単純なコードの何が問題なのかわかりません。誰でも助けることができますか?