我有一个List<Animal>
,我想将其作为SOAP响应发送到客户端,但send方法需要byte[]
并在客户端中进行反序列化。
有人能告诉我如何将我的List<Animal>
转换为byte[]
,并将byte[]
转换回List<Animal>
吗。
我知道这个网站上有很多这样的问题,但我对答案感到困惑。我试了很多,但都不适用。
这取决于Animal。如果是Serializable,则可以使用Java Serialization mechanizmhttps://docs.oracle.com/javase/tutorial/jndi/objects/serial.html.
public static byte[] objectToByteArray(Object obj) throws Exception {
byte[] bytes = null;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(obj);
bytes = baos.toByteArray();
oos.close();
return bytes;
}
public static Object byteArrayToObject(byte[] buffer) throws Exception {
Object ob = null;
ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(
buffer));
ob = ois.readObject();
ois.close();
return ob;
}