我想要将List<Animal>
作为SOAP响应发送给客户端,但send方法需要byte[]
并在客户端中反序列化。
有人可以告诉我如何将List<Animal>
转换为byte[]
并将byte[]
转换回List<Animal>
。
我知道在这个网站上有很多这样的问题,但我对答案感到困惑。我试了很多,但没有一个对我有效。
答案 0 :(得分:2)
这取决于动物。如果是Serializable,则可以使用Java Serialization mechanizm https://docs.oracle.com/javase/tutorial/jndi/objects/serial.html。
答案 1 :(得分:0)
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;
}