将类转换为字节数组时出错,反之亦然



我需要将Object作为字节数组发送到另一个方法,该方法本身将从Object返回另一个字节数组。

这是我调用方法的代码:

byte[] bytesArray;
Gato gatito = null;
Gato gato = new Gato();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = null;
try {
out = new ObjectOutputStream(bos);   
out.writeObject(gato);
bytesArray = bos.toByteArray();
} 
finally {
out.close();
bos.close();
}
System.out.println("Gatito es nulo? "+gatito==null);
byte[] huntedCat = cliente.method(bytesArray);
ByteArrayInputStream bis = new ByteArrayInputStream(huntedCat);
ObjectInput in = null;
try {
in = new ObjectInputStream(bis);
gatito = ((Gato)in.readObject()); 
} finally {
bis.close();
in.close();
}
System.out.println(gatito.nombre);

}

这就是所谓的方法,它实际上执行完全相同的操作:

public byte[] method(byte[] something) {
  byte[] bytesArray = null;
  Gato gato = new Gato();
  ByteArrayOutputStream bos = new ByteArrayOutputStream();
  ObjectOutput out = null;
  try {
    out = new ObjectOutputStream(bos);   
    out.writeObject(gato);
    bytesArray = bos.toByteArray();
    out.close();
    bos.close();
  } 
  catch(IOException e) {
  }
  return bytesArray;
}

我总是收到一个错误,所以程序暂停,异常中的getMessage显示Gato,这是我正在转换为字节数组的类。

可能是您的Gato类没有实现Serializable吗?

请参阅:Serializable(JavaDocs)

相关内容

  • 没有找到相关文章

最新更新