Module java.base
Package java.io

Class ObjectStreamClass

java.lang.Object
java.io.ObjectStreamClass
所有已实现的接口:
Serializable

public final class ObjectStreamClass extends Object implements Serializable
类的序列化描述符。它包含类的名称和serialVersionUID。可以使用lookup方法找到/创建在此Java虚拟机中加载的特定类的ObjectStreamClass。

计算SerialVersionUID的算法在 Java对象序列化规范,第4.6节“流唯一标识符”中描述。

自:
1.1
外部规范
参见:
  • Field Details

    • NO_FIELDS

      public static final ObjectStreamField[] NO_FIELDS
      serialPersistentFields值表示没有可序列化的字段
  • Method Details

    • lookup

      public static ObjectStreamClass lookup(Class<?> cl)
      查找可以序列化的类的描述符。如果指定的类尚未为类创建ObjectStreamClass实例,则创建一个。如果指定的类未实现java.io.Serializable或java.io.Externalizable,则返回null。
      参数:
      cl - 要获取描述符的类
      返回:
      指定类的类描述符
    • lookupAny

      public static ObjectStreamClass lookupAny(Class<?> cl)
      返回任何类的描述符,无论其是否实现Serializable
      参数:
      cl - 要获取描述符的类
      返回:
      指定类的类描述符
      自:
      1.6
    • getName

      public String getName()
      返回由此描述符描述的类的名称。此方法以Class.getName()方法使用的格式返回类的名称。
      返回:
      表示类名称的字符串
    • getSerialVersionUID

      public long getSerialVersionUID()
      返回此类的serialVersionUID。serialVersionUID定义了一组所有具有相同名称且从共同根类演变而来的类,它们同意使用通用格式进行序列化和反序列化。NonSerializable类的serialVersionUID为0L。
      返回:
      此描述符描述的类的SUID
    • forClass

      public Class<?> forClass()
      返回此版本映射到的本地VM中的类。如果没有相应的本地类,则返回null。
      返回:
      此描述符表示的Class实例
    • getFields

      public ObjectStreamField[] getFields()
      返回此可序列化类的字段数组。
      返回:
      包含此类每个持久字段的元素的数组。如果没有字段,则返回长度为零的数组。
      自:
      1.2
    • getField

      public ObjectStreamField getField(String name)
      通过名称获取此类的字段。
      参数:
      name - 要查找的数据字段的名称
      返回:
      名为字段的ObjectStreamField对象,如果没有这样的命名字段则返回null。
    • toString

      public String toString()
      返回描述此ObjectStreamClass的字符串。
      覆盖:
      toString 在类 Object
      返回:
      对象的字符串表示形式