Java教程-Java ObjectStreamField类

Java ObjectStreamField类
Serializable类中一个可序列化字段的描述。ObjectStreamFields的数组用于声明类的可序列化字段。
java.io.ObjectStreamClass.getField(String name)方法通过名称获取该类的字段。
构造函数
Constructor | Description |
---|---|
ObjectStreamField(String name, Class<?> type) | 它创建一个具有指定类型的可序列化字段。 |
ObjectStreamField(String name, Class<?> type, boolean unshared) | 它创建一个 ObjectStreamField,表示具有给定名称和类型的可序列化字段。 |
方法
Modifier and Type | Method | Description |
---|---|---|
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() | 它返回一个描述该字段的字符串。 |
public char getTypeCode()
返回字段类型的字符编码。编码规则如下:
B | byte |
---|---|
C | char |
D | double |
F | float |
I | int |
J | long |
L | class or interface |
S | short |
Z | boolean |
[ | array |
返回:
可序列化字段的类型代码
示例:
import java.io.ObjectStreamClass;
import java.util.Calendar;
public class ObjectStreamClassExample {
public static void main(String[] args) {
// 为 Integers 创建一个新的对象流类
ObjectStreamClass osc = ObjectStreamClass.lookup(String.class);
// 从 ObjectStreamClass 获取整数值字段
System.out.println("" + osc.getField("value"));
// 为 Calendar 创建一个新的对象流类
ObjectStreamClass osc2 = ObjectStreamClass.lookup(Calendar.class);
// 获取 osc2 的类实例
System.out.println("" + osc2.getField("isTimeSet"));
}
}
输出:
I value
Z isTimeSet