Java ObjectStream
类
原文:https://www.studytonight.com/java-file-io/java-objectstreamclass
在本教程中,我们将学习 Java 中的ObjectStreamClass
。这个类也被称为类的序列化描述符。它包含类的名称和 serialVersionUID。
ObjectStreamClass 的方法
ObjectStreamClass
的不同方法如下:
方法 | 描述 |
---|---|
Class<?> forClass() |
它返回该版本映射到的本地虚拟机中的类。 |
ObjectStreamField getField(String name) |
它通过名称获取这个类的字段。 |
ObjectStreamField[] getFields() |
它返回此序列化类的字段数组。 |
String getName() |
它返回由这个描述符描述的类名。 |
long getSerialVersionUID() |
它返回这个类的 serialVersionUID。 |
Static ObjectStreamClass lookup(Class<?> cl) |
它找到一个可以序列化的类的描述符。 |
Static ObjectStreamClass lookupAny(Class<?> cl) |
它返回任何类的描述符,不管它是否实现 Serializable。 |
String toString() |
它返回一个描述该ObjectStream 类的字符串。 |
ObjectStream
类及其方法示例
在下面的例子中,我们调用getFields()
、getName()
、getSerialVersionUID()
和toString()
方法来获取类的相应信息。这里我们借助lookup()
方法为java.lang
包的Number
类创建了一个ObjectStreamClass
方法的对象。
package studytonight;
import java.io.ObjectStreamClass;
public class StudyTonight
{
public static void main(String args[])
{
ObjectStreamClass stream = ObjectStreamClass.lookup(Number.class);
System.out.println("Class Fields: "+stream.getFields());
System.out.println("Class Name: " + stream.getName());
System.out.println("Class SerialVersionUID: "+stream.getSerialVersionUID());
System.out.println("Class String: "+stream.toString());
}
}
类字段:【ljava . io . objectstreamfield;@3ac42916 类名称:java.lang.Number 类序列版本号:-8742448824652078965 类字符串:java.lang.Number:静态最终长序列版本号=-874248824652078965 l;
检查类实例的示例
在这个例子中,我们使用lookup()
和lookupAny()
方法检查一个类的实例。这里lookup()
方法找到一个可以序列化的类的描述符。另一方面, lookupAny()
方法返回任何类的描述符,不管它是否实现 Serializable。
package studytonight;
import java.io.ObjectStreamClass;
import java.util.ArrayList;
public class StudyTonight
{
public static void main(String args[])
{
ObjectStreamClass objectStream1 = ObjectStreamClass.lookup(Number.class);
System.out.println(objectStream1.forClass());
ObjectStreamClass objectStream2 = ObjectStreamClass.lookupAny(ArrayList.class);
System.out.println(objectStream2.forClass());
}
}
类 java.lang.Number 类 java.util.ArrayList
结论
在本教程中,我们学习了ObjectStreamClass
。这个类也被称为类的序列化描述符。它包含类的名称和 serialVersionUID。它扩展了类对象并实现了可序列化。