Java:关键字"this"和序列化

d-_*_*_-b 3 java

我有一个简单的类,如下所示.

我想要用这个类实现的是将实例序列化为一个字节数组,但我一直在努力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();
Run Code Online (Sandbox Code Playgroud)

Sum*_*ngh 5

来自NotSerializableException

当实例需要具有Seri​​alizable接口时抛出.序列化运行时或实例的类可以抛出此异常.参数应该是类的名称.

您需要在您的类中实现Serializable接口.

class XXX implements Serializable {
 ...
}
Run Code Online (Sandbox Code Playgroud)

请参阅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]