[英]Java: The keyword “this” and Serialization
我有一個簡單的類,如下所示。
我想用這個類實現的是將實例序列化為一個字節數組,但我不斷得到java.io.NotSerializableException
。
我的代碼出了什么問題?
這只是一個指向在調用構造函數而不是實際實例對象時創建的實例的指針嗎?
class XXX {
private String someStr;
public XXX(String someStr){
this.someStr = someStr;
}
public byte[] toByteArray(){
byte[] output = null;
try(ByteArrayOutputStream out = new ByteArrayOutputStream();
ObjectOutputStream stream = new ObjectOutputStream(out)) {
stream.writeObject(this);
output = out.toByteArray();
}catch(Exception e){
}
return output;
}
}
XXX aX = new XXX("some string");
aX.toByteArray();
當實例需要具有Serializable接口時拋出。 序列化運行時或實例的類可以拋出此異常。 參數應該是類的名稱。
您需要在您的類中實現Serializable接口 。
class XXX implements Serializable {
...
}
請參閱ideone.com中的輸出
[-84,-19,0,5,115,114,0,6,73,100,101,111,110,101,107,-60,36,124,45,63,13,80,2, 0,1,76,0,7,115,111,109,101,83,116,114,116,0,18,76,106,97,118,97,47,108,97,110,103, 47,83,116,114,105,110,103,59,120,112,116,0,11,115,111,109,101,32,115,116,114,105,110,103]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.