我有一個List<Animal>
,我想作爲SOAP響應發送到客戶端,但發送方法需要byte[]
並在客戶端反序列化。如何序列化和反序列化Java中的對象列表?
誰能告訴我如何將我的List<Animal>
轉換爲byte[]
並將byte[]
轉換回List<Animal>
。
我知道這個網站有很多這樣的問題,但我對這個答案感到困惑。我嘗試了很多,但都沒有爲我工作。
我有一個List<Animal>
,我想作爲SOAP響應發送到客戶端,但發送方法需要byte[]
並在客戶端反序列化。如何序列化和反序列化Java中的對象列表?
誰能告訴我如何將我的List<Animal>
轉換爲byte[]
並將byte[]
轉換回List<Animal>
。
我知道這個網站有很多這樣的問題,但我對這個答案感到困惑。我嘗試了很多,但都沒有爲我工作。
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序列化mechanizm https://docs.oracle.com/javase/tutorial/jndi/objects/serial.html。
我試過了。它只適用於單個對象或對象,但不適用於列表 –
user1036645
這樣的嵌套對象。我再次嘗試了您建議的代碼。它拋出java.lang.ClassCastException:[B不能轉換爲java.util.List – user1036645