這個類是類的序列化說明符。它包含類的名稱和serialVersionUID。可以使用查找方法找到/創建此 Java VM 中加載的特定類的ObjectStreamClass。它擴展了 Object 類並實現了可序列化。
字段:靜態 ObjectStreamField[] NO_FIELDS- 這是serialPersistentFields 值,指示沒有可序列化的字段。
方法:
類forClass():此方法返回此版本映射到的本地 VM 中的類。如果沒有對應的本地類,則返回 Null。
Syntax: public Class forClass()
Returns: the Class instance that this descriptor represents
Exception: NA
靜態ObjectStreamClass查找(類類):查找可序列化的類的說明符。如果類尚不存在ObjectStreamClass 實例,則創建一個實例。如果指定的類未實現 java.io.Serializable 或 java.io.Externalizable,則返回 Null。
Syntax: public static ObjectStreamClass lookup(Class cl)
Return: the class descriptor for the specified class
Exception: NA
靜態ObjectStreamClasslookupAny(類類):返回任何類的說明符,無論它是否實現 Serialized。
Syntax: public static ObjectStreamClass lookupAny(Class class)
Return: the class descriptor for the specified class
Exception: NA
Java
// Java code illustrating forClass(),
// lookup() and lookupAny() method
import java.io.ObjectStreamClass;
import java.util.ArrayList;
public class ObjectStreamDemo
{
public static void main(String arg[])
{
// creating object stream class for Number
ObjectStreamClass geeks_stream
= ObjectStreamClass.lookup(Number.class);
ObjectStreamClass quiz_stream
= ObjectStreamClass.lookupAny(ArrayList.class);
// checking class instance
System.out.println(geeks_stream.forClass());
System.out.println(quiz_stream.forClass());
}
}
輸出:
class java.lang.Number
class java.util.ArrayList
ObjectStreamField getField(字符串名稱):通過名稱獲取該類的字段。
Syntax: public ObjectStreamField getField(String name)
Return: The ObjectStreamField object of the named
field or null if there is no such named field.
Exception: NA
對象流字段[]getFields():返回此可序列化類的字段的數組。
Syntax: public ObjectStreamField[] getFields()
Returns: an array containing an element for each
persistent field of this class. Returns an array of length zero if
there are no fields.
Exception: NA
字符串getName():返回此說明符所說明的類的名稱。此方法以 Class.getName() 方法使用的格式返回類的名稱。
Syntax: public String getName()
Return: a string representing the name of the class
Exception: NA
長getSerialVersionUID():返回此類的serialVersionUID。 SerialVersionUID 定義了一組具有相同名稱的類,這些類從公共根類演變而來,並同意使用公共格式進行序列化和反序列化。 NonSerializable 類的serialVersionUID 為0L。
Syntax: public long getSerialVersionUID()
Returns: the SUID of the class described by this descriptor
Exception: NA
字符串toString():返回說明此 ObjectStreamClass 的字符串。
Syntax: public String toString()
Returns: a string representation of the object.
Exception: NA
Java
// Java code illustrating getField(), toString()
// getClass(), getSerialVersionUID()
import java.io.ObjectStreamClass;
import java.util.ArrayList;
public class ObjectStreamDemo
{
public static void main(String arg[])
{
// creating object stream class for Number
ObjectStreamClass geeks_stream
= ObjectStreamClass.lookup(Number.class);
// checking field
System.out.println(geeks_stream.getField("quiz_stream"));
System.out.println(geeks_stream.getFields());
// class name
System.out.println("class name: " + geeks_stream.getClass());
// checking serial version UID
System.out.println(geeks_stream.getSerialVersionUID());
System.out.println(geeks_stream.toString());
}
}
輸出:
null
[Ljava.io.ObjectStreamField;@45ee12a7
class name: class java.io.ObjectStreamClass
-8742448824652078965
java.lang.Number: static final long serialVersionUID = -8742448824652078965L;
相關用法
- Java Java.io.ObjectStreamClass.forClass()用法及代碼示例
- Java Java.io.ObjectStreamClass.getField()用法及代碼示例
- Java Java.io.ObjectStreamClass.getName()用法及代碼示例
- Java Java.io.ObjectStreamClass.lookup()用法及代碼示例
- Java Java.io.ObjectStreamClass.lookupAny()用法及代碼示例
- Java Java.io.ObjectStreamClass.toString()用法及代碼示例
- Java Java.io.ObjectStreamClass getSerialVersionUID()用法及代碼示例
- Java Java.io.ObjectStreamField.compareTo()用法及代碼示例
- Java Java.io.ObjectStreamField.getName()用法及代碼示例
- Java Java.io.ObjectStreamField.getOffset()用法及代碼示例
- Java Java.io.ObjectStreamField.getType()用法及代碼示例
- Java Java.io.ObjectStreamField.getTypeCode()用法及代碼示例
- Java Java.io.ObjectStreamField.getTypeString()用法及代碼示例
- Java Java.io.ObjectStreamField.isPrimitive()用法及代碼示例
- Java Java.io.ObjectStreamField.isUnshared()用法及代碼示例
- Java Java.io.ObjectStreamField.toString()用法及代碼示例
- Java Java.io.ObjectInputStream.available()用法及代碼示例
- Java Java.io.ObjectInputStream.close()用法及代碼示例
- Java Java.io.ObjectInputStream.read()用法及代碼示例
- Java Java.io.ObjectInputStream.readBoolean()用法及代碼示例
- Java Java.io.ObjectInputStream.readByte()用法及代碼示例
- Java Java.io.ObjectInputStream.readChar()用法及代碼示例
- Java Java.io.ObjectInputStream.readDouble()用法及代碼示例
- Java Java.io.ObjectInputStream.readFields()用法及代碼示例
- Java Java.io.ObjectInputStream.readFloat()用法及代碼示例
注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Java.io.ObjectStreamClass in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。