/
JdkSerializationSerializer.java
43 lines (38 loc) · 1.34 KB
/
JdkSerializationSerializer.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package org.mengyun.tcctransaction.serializer;
import java.io.*;
/**
* Created by changming.xie on 7/22/16.
*/
public class JdkSerializationSerializer<T> implements ObjectSerializer<T> {
@Override
public byte[] serialize(T object) {
if (object == null) {
return null;
} else {
ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
try {
ObjectOutputStream ex = new ObjectOutputStream(baos);
ex.writeObject(object);
ex.flush();
} catch (IOException var3) {
throw new IllegalArgumentException("Failed to serialize object of type: " + object.getClass(), var3);
}
return baos.toByteArray();
}
}
@Override
public T deserialize(byte[] bytes) {
if (bytes == null) {
return null;
} else {
try {
ObjectInputStream ex = new ObjectInputStream(new ByteArrayInputStream(bytes));
return (T) ex.readObject();
} catch (IOException var2) {
throw new IllegalArgumentException("Failed to deserialize object", var2);
} catch (ClassNotFoundException var3) {
throw new IllegalStateException("Failed to deserialize object type", var3);
}
}
}
}