ObjectStreamClass可以是有用的类,用于分析JVM中加载的序列化类的序列化特征。 这篇文章介绍了此类提供的有关已加载序列化类的一些信息。
ObjectStreamClass
提供了两个用于查找类的静态方法: lookup(class)和lookupAny(Class) 。 第一个lookup(Class)
仅在提供的类可序列化时返回ObjectStreamClass
的实例,如果提供的类不可序列化则返回null。 第二个方法lookupAny(Class)
返回所提供类的ObjectStreamClass
实例,而不管其是否可序列化。
一旦通过静态“ lookup”方法提供了ObjectStreamClass
实例,就可以查询该实例的类名 , 序列号UID和可序列化的字段 。
为了演示ObjectStreamClass
用法,我首先列出了两个简单类的代码清单,它们将是演示的一部分。 一类Person
是可序列化的 ,但具有一个过渡字段。 另一个类UnserializablePerson
几乎相同,但不可序列化。
人.java
package dustin.examples.serialization;
import java.io.Serializable;
/**
* Person class intended for demonstration of ObjectStreamClass.
*
* @author Dustin
*/
public class Person i