Java ObjectStreamField类

【Java ObjectStreamField类】Serializable类中对Serializable字段的描述。 ObjectStreamFields数组用于声明类的Serializable字段。
java.io.ObjectStreamClass.getField(String name)方法按名称获取此类的字段。
建设者

建设者 描述
ObjectStreamField(字符串名称, Class < ?> 类型) 它创建具有指定类型的Serializable字段。
ObjectStreamField(字符串名称, Class < ?> 类型, 布尔值不共享) 它创建一个ObjectStreamField, 表示具有给定名称和类型的可序列化字段。
方法
修饰符和类型 方法 描述
int compareTo(Object obj) 它将此字段与另一个ObjectStreamField进行比较。
String getName() 它获取该字段的名称。
int GetOffset() 实例数据中字段的偏移量。
Class< ?> getType() 它获取字段的类型。
char getTypeCode() 它返回字段类型的字符编码。
String getTypeString() 它返回JVM类型签名。
boolean isPrimitive() 如果此字段具有原始类型, 则返回true。
boolean isUnshared() 它返回布尔值, 该布尔值指示此ObjectStreamField实例表示的可序列化字段是否未共享。
protected void setOffset(int offset) 实例数据中的偏移量。
String toString() 它返回描述此字段的字符串。
公共字符getTypeCode()
返回字段类型的字符编码。编码如下:
B byte
C char
D double
F float
I int
J long
L 类或接口
S short
Z boolean
[ array
返回值:
可序列化字段的类型代码
import java.io.ObjectStreamClass; import java.util.Calendar; public class ObjectStreamClassExample { public static void main(String[] args) {// create a new object stream class for Integers ObjectStreamClass osc = ObjectStreamClass.lookup(String.class); // get the value field from ObjectStreamClass for integers System.out.println("" + osc.getField("value")); // create a new object stream class for Calendar ObjectStreamClass osc2 = ObjectStreamClass.lookup(Calendar.class); // get the Class instance for osc2 System.out.println("" + osc2.getField("isTimeSet")); } }

输出:
I value Z isTimeSet

    推荐阅读