如何序列化和反序列化 Java 中的对象列表?

How to serialize and deserialise list of objects in Java?

我有一个 List<Animal>,我想将其作为 SOAP 响应发送给客户端,但发送方法需要 byte[] 并在客户端反序列化。

谁能告诉我如何将 List<Animal> 转换为 byte[] 并将 byte[] 转换回 List<Animal>

我知道这个网站上有很多这样的问题,但我对答案感到困惑。我尝试了很多,但 none 对我有用。

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;
}

这取决于动物。如果它是可序列化的,您可以使用 Java 序列化机制 https://docs.oracle.com/javase/tutorial/jndi/objects/serial.html