簡體   English   中英

Java:關鍵字“this”和序列化

[英]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();

來自NotSerializableException

當實例需要具有Seri​​alizable接口時拋出。 序列化運行時或實例的類可以拋出此異常。 參數應該是類的名稱。

您需要在您的類中實現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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM