简单的方法是检查对象是否为
java.io.Serializable或的实例
java.io.Externalizable,但这并不能真正证明该对象确实可序列化。
唯一可以确定的方法是实际尝试。最简单的测试是这样的:
new ObjectOutputStream(new ByteArrayOutputStream()).writeObject(myObject);
并检查它是否不会引发异常。
Apache Commons Lang提供了一个更简短的版本:
SerializationUtils.serialize(myObject);
并再次检查异常。
您仍然可以更加严格,并检查它反序列化为与原始序列相同的东西:
Serializable original = ...Serializable copy = SerializationUtils.clone(original);assertEquals(original, copy);
等等。



